Задачи на программирование паскаль 9 класс

Сборник задач по программированию на языке Паскаль

Автор: Чолокоглы Алина Олеговна, учитель информатики и ИКТ МАОУ СОШ №44 г.Томска

Описание материала: Сборник задач посвящен вопросам программирования на языке программирования Pascal 7.0. В нем подробно рассматриваются решения большого количества задач, от простых до достаточно сложных.

Сборник адресован учащимся, преподавателям, ведущим занятия по информатике и программированию, а также всем желающим самостоятельно овладеть искусством программирования на языке Pascal 7.0.

Сборник содержит условия задач и одно или два варианта их решения на языке программирования Pascal 7.0.

Задачи в сборнике классифицированы по основным разделам: линейные алгоритмы, разветвляющиеся алгоритмы, циклические алгоритмы, обработка массивов, обработка строк и создание графических изображений. После каждого раздела предлагаются задачи для самостоятельного решения. Внутри каждого раздела задачи по мере возможности расположены по возрастанию степени трудности.

1. Линейные алгоритмы. 4

2. Разветвляющиеся алгоритмы. 5

2.1 Условный оператор IF. 5

2.2 Условный оператор CASE. 6

3. Циклические алгоритмы. 8

3.1 Оператор цикла FOR. 8

3.2 Оператор цикла WHILE. 9

4. Обработка массивов. 12

4.1 Одномерные массивы. 12

4.1.1 Алгоритмы поиска и присвоения значений элементам массива 12

4.1.2 Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива. 14

4.1.3 Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса. 18

4.1.4 Алгоритмы удаления, вставки и перестановки элементов. 21

4.1.5 Алгоритмы сортировки числового массива. 22

4.2 Двумерные массивы. 23

4.2.1 Алгоритмы действий над элементами двумерного массива.. 23

4.2.2 Алгоритмы формирования одномерного массива. 28

4.2.3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива. 31

4.2.4 Алгоритмы удаления, вставки и перестановки элементов. 33

5. Обработка строк. 34

5.1 Подсчет и вывод символов. 34

5.2 Удаление символов. 35

5.3 Вставка символов. 36

5.4 Сложные варианты. 37

6. Создание графических изображений. Модуль Graph. 39

Линейные алгоритмы

Задача 1. Даны две целые переменные A, B. Составить фрагмент программы, после исполнения которого, значения переменных поменялись бы местами (новое значение A равно старому значению B и наоборот).

Write(‘ Введите два значения ‘);

Задача 2. Решить предыдущую задачу, не используя дополнительных переменных (и предполагая, что значениями целых переменных могут быть произвольные целые числа).

Write(‘ Введите два значения ‘);

A := A + B; B := A — B; A := A — B;

Задача 3.Задан радиус окружности. Найти площадь и длину окружности.

Write(‘ Введите радиус окружности ‘);

WriteLn(‘ Площадь окружности = ’,S:4:2);

WriteLn(‘ Длина окружности = ‘,L:4:2);

1. Даны три действительных положительных числа. Найти среднее геометрическое и среднее арифметическое этих чисел.

2. Даны катеты прямоугольного треугольника. Найти его гипотенузу и площадь.

3. Мальчик купил несколько тетрадей по сто рублей и несколько обложек по 50 рублей. Составить программу, которая могла бы подсчитать стоимость всей покупки.

Разветвляющиеся алгоритмы

Условный оператор IF

Задача 1.Определить является ли данное целое число R четным. Дать словесный ответ.

IF R MOD 2 = 0 Then WriteLn(‘Число четное’)

Else WriteLn(‘Число не четное’);

Задача 2.Даны три целых числа. Выбрать из них те, которые принадлежат интервалу [1,3]

WriteLn(‘Введите три целых числа’);

IF (X>=1) AND (X =1) AND (Y =1) AND (Z C) AND (A+C>B) AND (B+C>A) Then WriteLn(‘Треугольник построить можно’)

Else WriteLn(‘Треугольник построить нельзя’);

1. Заданы два числа X, Y. Меньшее из двух значений заменить на 0. Если же они равны – заменить нулями оба.

2. Поменять местами значения целых переменных A, B, C таким образом, чтобы оказалось A³B³C.

3.Заданы три числа X, Y, Z. Найти min(XYZ, X+Y+Z).

Условный оператор CASE

Задача 1.Составить программу, которая по введенному значению 1, 2, 3, 4 вычисляет площадь треугольника:

1. По основанию и высоте

2. По трем сторонам

3. По двум сторонам и углу между ними

WriteLn(‘Вычисление площади треугольника’); WriteLn;

WriteLn(‘1.По основанию и высоте’);

WriteLn(‘2.По трем сторонам’);

WriteLn(‘3.По двум сторонам и углу между ними’);

WriteLn(‘Введите номер пункта’); ReadLn(X);

Write(‘Введите основание и высоту треугольника ‘); ReadLn(A,H);

WriteLn(‘Площадь треугольника = ‘,S:5:2); ReadLn;

Write(‘Введите значения сторон треугольника ‘);

WriteLn(‘Площадь треугольника = ‘,S:5:2); ReadLn;

Write(‘Введите значения двух сторон и угол между ними ‘);

WriteLn(‘Площадь треугольника = ‘,S:5:2); ReadLn;

WriteLn(‘Программа закончила свою работу’); ReadLn;

WriteLn(‘Номер пункта ввели неверно’); ReadLn;

Задача 2.Составить программу, которая по введенному значению выводит оценки по математике, физике, информатике.

VAR X: INTEGER; M:CHAR;

WriteLn(‘ПРГ выводит оценки по математике, физике и химии’);

WriteLn(‘1.Вывод оценок по предметам’);

WriteLn(‘Введите номер пункта’);

WriteLn(‘ По какому предмету Вы хотите увидеть оценки’);

WriteLn(‘ М — математика’);

WriteLn(‘ Ф — физика’);

WriteLn(‘ Х — химия’);

‘М’,’м’:WriteLn(‘5 5 4 4 5 5 3 5 5 ‘);

‘Ф’,’ф’:WriteLn(‘5 4 5 3 5 4 5 5 5 ‘);

‘Х’,’х’:WriteLn(‘4 3 5 3 4 4 4 5 ‘);

WriteLn(‘Номер неверен’); ReadLn;

1. Составить программу, которая по введенному значению 1, 2, 3 вычисляет:

  1. Площадь параллелограмма
  2. Периметр параллелограмма
  3. Выход

2. Составить программу «Календарь XX столетия», которая определяет день недели любого дня XX-го столетия. По введенному значению 1, 2, 3 вычисляет

  1. номер дня недели по формуле, где D- день, М-месяц, G-год:

¨ N=K-7[K/7] (N-вычисляется от 0-воскресенье до 6-суббота, []-целая часть)

  1. день недели по его номеру
  2. выход

Циклические алгоритмы

Оператор цикла FOR

Задача 1.Найти произведение положительных, сумму и количество отрицательных из 10 введенных целых значений.

X: INTEGER; S, K, P: INTEGER; I: BYTE;

FOR I:=1 TO 10 DO Begin

WriteLn(‘Введите ‘,I,’ -е значение’); ReadLn(x);

IF X 0) Then Begin

IF (X MA) Then MA:=X;

IF (X>0) AND (X N DO Begin

K := K + 1; B := B * A;

Write(‘ A в степени N = ’,B);

Другое решение той же задачи:

A, N, B, K : INTEGER;

Write(‘ Введите два значения ‘); ReadLn(A,N);

While K <> 0 DO Begin

K := K — 1; B := B * A;

Write(‘ A в степени N = ’,B);

Задача 2. Даны натуральные числа а, b. Вычислить произведение а*b, используя в программе лишь операции +, -, =, <>.

A, B, C, K : INTEGER;

Write(‘ Введите два значения ‘); ReadLn(A,B);

While K <> B DO Begin

K := K + 1; C := C + A;

Задача 3. Дано натуральное (целое неотрицательное) число A и целое положительное число D. Вычислить частное Q и остаток R при делении A на D, не используя операций DIV и MOD. (Согласно определению, А = Q * D + R, 0 = 0>

WriteLn(‘ Частное = ’,Q);

WriteLn(‘ Остаток = ’,R);

Задача 4.Каждый год урожайность повышается на 5%. Через сколько лет урожай удвоится?

YR, KL: BYTE; YRG: REAL;

Write(‘Введите урожайность ‘); ReadLn(YR);

While (YRG 2*N) DO Begin

WriteLn(M,’ лет деду’);

WriteLn(N,’ лет внуку’);

WriteLn(‘Через ‘,KL,’ лет дед вдвое станет старше внука’);

Задача 6.Поле засеяли цветами двух сортов на площади S1 и S2. Каждый год площадь цветов первого сорта увеличивается вдвое, а площадь второго сорта увеличивается втрое. Через сколько лет площадь первых сортов будет составлять меньше 10% от площади вторых сортов.

Write(‘Введите площадь, которую засеяли цветами 1-го сорта ‘); ReadLn(S1);

Write(‘Введите площадь, которую засеяли цветами 2-го сорта ‘); ReadLn(S2);

While (S1>0.1*S2) DO Begin

S1:=S1*2; S2:=S2*3; KL:=KL+1;

WriteLn(‘Площадь, которую засеяли цветами 1-го сорта ‘,S1);

WriteLn(‘Площадь, которую засеяли цветами 2-го сорта ‘,S2);

WriteLn(‘Через ‘, kl,’ лет’);

Задача 7.Составить программу перевода числа из 10 системы счисления в 2 систему счисления.

Для этой задачи представлено два решения.

a)

DES, OST, I, DW:INTEGER;

Write(‘Введите десятичное число ‘); ReadLn(DES);

While (DES>=2) DO Begin

Write(‘Двоичная запись числа ‘,DW);

b)

DES, OST, I:INTEGER;

DW:Array[1..100] OF INTEGER;

Write(‘Введите десятичное число ‘); ReadLn(des);

While (des>=2) DO Begin

FOR I:=I DownTo 1 DO

1. Составить программу, печатающую квадраты всех натуральных чисел от 0 до заданного натурального n.

2. Дано натуральное n, вычислить n! (0!=1, n! = n * (n-1)!).

3. Последовательность Фибоначчи определяется так: a(0)= 1, a(1) = 1, a(k) = a(k-1) + a(k-2) при k >= 2. Дано n, вычислить a(n).

4. К старушке на обед ходят кошки. Каждую неделю две кошки приводят свою подружку. В доме у старушки 100 мисок. Через какое время появятся лишние кошки, и сколько кошек при этом останется голодными.

5. Известна сумма номеров страниц, определить номер страницы.

6. Лягушка каждый последующий прыжок делает в два раза короче предыдущего. Достигнет ли она болота и за сколько прыжков. Длину первого прыжка задайте самостоятельно.

Обработка массивов

Одномерные массивы

VAR

P:ARRAY[0..N] OF INTEGER;

WriteLn(‘ Значения элементов массива’);

FOR I:=1 TO N DO Begin

Write(‘ Введите значение переменной ‘); ReadLn(T);

WriteLn(‘ Сумма элементов массива > заданного значения = ‘,S);

Задача 2.Дан массив целых чисел, состоящий из 25 элементов. Подсчитать сумму элементов массива, произведение положительных и количество нулевых элементов. Результат вычисления вывести на экран.

A:ARRAY[0..25] OF INTEGER;

I: BYTE; S,K: INTEGER; P: REAL;

WriteLn(‘ Значения элементов массива’);

FOR I:=1 TO 25 DO Begin

FOR I:=1 TO 25 DO Begin

IF A[I]>0 THEN P:=P*A[I];

IF A[I]=0 THEN K:=K+1;

WriteLn(‘ Сумма элементов массива = ‘,S);

WriteLn(‘ Произведение положительных элементов массива = ‘,P:0:0);

WriteLn(‘ Количество нулевых элементов массива = ‘,K);

Задача 3.Дан массив четных чисел, состоящий из 15 элементов. Заполнить его с клавиатуры. Найти:

· сумму элементов, имеющих нечетные индексы;

· подсчитать количество элементов массива, значения которых больше заданного числа T и кратны 5;

· номер первого отрицательного элемента, делящегося на 5 с остатком 2.

A:ARRAY[0..15] OF INTEGER;

I,NP,FL: BYTE; S,K: INTEGER;

FOR I:=1 TO 15 DO Begin

Write(‘Введите ‘,I,’ злемент массива ‘); ReadLn(A[I]);

FOR I:=1 TO 15 DO Begin

IF I mod 2 =0 THEN S:=S+A[I];

IF (A[I]>T) AND (A[I] mod 5 =0) THEN K:=K+1;

IF (A[I] ‘,T,’ и кратны 5 = ‘,K);

WriteLn(‘ Номер первого отрицательного элемента, делящегося на 5 с остатком 2 = ‘,NP);

Задача 4.Дан массив четных чисел, состоящий из 10 элементов. Заполнить его с клавиатуры. Найти:

· сумму положительных элементов, значения которых меньше 10;

· вывести индексы тех элементов, значения которых кратны 5 и 3;

· количество пар соседних элементов с суммой равной заданному числу.

A:ARRAY[0..10] OF INTEGER;

I: BYTE; S,K: INTEGER;

FOR I:=1 TO 10 DO Begin

Write(‘Введите ‘,I,’ злемент массива ‘); ReadLn(A[I]);

WriteLn(‘ Индексы элементов, значения которых кратны 3 и 5’);

FOR I:=1 TO 10 DO Begin

IF (A[I]>0) AND (A[I] 10 THEN IF A[I]+A[I+1]=T THEN K:=K+1;

WriteLn(‘ Сумма положительных элементов, значения которых значения предыдущего элемента’);

FOR I:=1 TO 10 DO Begin

IF (A[I]>0) THEN S:=S+A[I];

IF I<>1 THEN IF A[I] > A[I-1] THEN Write(I:3);

IF I<>10 THEN IF (A[I] * A[I+1])>0 THEN K:=K+1;

WriteLn(‘ Удвоенная сумма положительных элементов = ‘,S*2);

WriteLn(‘ Количество пар соседних элементов с одинаковыми знаками = ‘,K);

Задача 6. Дан массив C, состоящий из N элементов. Элементы массива — произвольные целые числа. Вывести на экран элементы массива в обратном порядке.

C:ARRAY[0..N] OF INTEGER;

WriteLn(‘ Значения элементов массива’);

FOR I:=1 TO N DO Begin

WriteLn(‘ Значения элементов массива в обратном порядке’);

FOR I:=N DOWNTO 1 DO

Задача 7. Дан массив A, состоящий из N элементов. Элементы массива — произвольные целые числа. Распечатать элементы в две строки: в первой строке элементы с нечетными индексами, а во второй — элементы с четными индексами.

A:ARRAY[0..N] OF INTEGER;

WriteLn(‘ Значения элементов массива’);

FOR I:=1 TO N DO Begin

WriteLn(‘ Элементы с нечетными индексами’);

WHILE I ‘ ‘) AND (A[N]<>’.’) AND (A[N]<>’,’) THEN KS:=KS+1;

Читайте также:  Как установить сертификат сбис на компьютер

WriteLn(‘Средняя длина слова = ‘,KB/KS:3:0);

Задача 3.Подсчитать, сколько слов в тексте начинается на букву «а» (слова разделены пробелом).

A: STRING [240]; KS, N, I: INTEGER;

Write(‘Введите тест ‘); ReadLn(A);

IF A[1]=’А’ THEN KS:=1 ELSE KS:=0;

IF (COPY(A,I,2) =’ а’) OR (COPY(A,I,2)=’ А’ THEN KS:=KS+1;

WriteLn(‘Количество слов, начинающихся на букву «а» =’,KS);

1. Подсчитать, сколько слов в тексте оканчивается на букву “а”.

2. Подсчитать, сколько букв “т” в последнем предложении.

3. Подсчитать, сколько раз встречается в тексте слово “кот”.

Удаление символов

Задача 1.Удалить лишние пробелы между словами, оставив по одному.

S:STRING[255]; I,K: INTEGER;

Write(‘Введите текст ‘); ReadLn(S);

While(I ‘ ‘) DO Begin

WriteLn(‘ Измененный текст:’); Write(S);

Задача 3.Из текста удалить каждое второе слово. Слова разделены пробелом.

Type MAS= STRING [20];

Write(‘Введите текст ‘); ReadLn(A);

While (I ‘ ‘) DO Delete(A,K,1);

WriteLn(‘Измененный текст:’); Write(A);

1. В третьем предложении текста удалить все слова «мир»

2. Из строки символов удалить все гласные буквы

3. Из строки символов удалить заданное слово

4. Удалить все символы «!», следующие за вторым предложением

Вставка символов

Задача 1.В текст вставить символ пробел после каждого имеющегося символа пробел.

A : STRING [255]; I: INTEGER;

WriteLn(‘Введите текст’); ReadLn(A);

While (I ‘ ‘) DO Begin

IF (A[I]=’a’) OR (A[I]=’A’) THEN KB:=KB+1;

IF KB>2 THEN KS:=KS+1;

WriteLn(‘ Количество слов, в которых буква «а» встречается не менее двух раз = ‘,ks)

Задача 3.Найти слово в тексте, содержащее наибольшее количество букв «м».

A, D : STRING [255]; I, KB, MKB, K, MK, NP, MNP : INTEGER;

WriteLn(‘Введите текст’); ReadLn(A);

While(I ‘ ‘) DO Begin

IF A[I]=’м’ THEN KB:=KB+1;

IF MKB 0 then HALT(1);

SetBkColor(1); SetColor(6); SetTextStyle(0,0,2);

OutTextXY(50,140,’Пробел — Красим экран’);

OutTextXY(50,170,’Стрелка вверх — Столбик поднимается’);

OutTextXY(50,200,’Стрелка вниз — Столбик опускается’);

Bar(0,0,GetMaxX div 2,GetMaxY);

Bar(GetMaxX div 2,0,GetMaxX,GetMaxY);

ClearDevice; SetLineStyle(0,0,1); SetBkColor(1); SetColor(4);

X:=GetMaxX div 2; Y:=GetMaxY div 2;

FOR I:=1 TO120 DO Begin

ClearDevice; SetLineStyle(0,0,1); SetBkColor(1); SetColor(4);

X:=GetMaxX div 2; Y:=GetMaxY div 2;

FOR I:=1 TO 117 DO Begin

SetColor(4); OutTextXY(70,GetMaxY-25,’Нажмите DEL’);

UNTIL (Ch=#83) or (Ch=#27);

Задача 3. Написать систему ниспадающего меню, которая в зависимости от выбора пользователя выводит на экран день и ночь.

VAR Gd,Gm : INTEGER; Av: CHAR;

VAR X,Y,X1,Y1 : INTEGER; U: REAL;

ClearDevice; SetFillStyle(1,14); SetColor(14);

X:=GetMaxX DIV 2; Y:=GetMaxY DIV 2;

FOR Gm:=1 TO 150 DO Begin

X1:=Trunc(Random (200)*COS(U))+X; Y1:= Trunc (Random (200)*SIN(U))+Y;

ClearDevice; SetFillStyle (1,15); SetColor (15);

FOR I:=1 TO 50 DO Begin

PutPixel(Random (GetMaxX), Random (GetMaxY),15);

PutPixel(Random (GetMaxX), Random (GetMaxY),15);

FillEllipse(Random (GetMaxX), Random (GetMaxY),R,R);

SetFillStyle (1,15); SetColor (15); FillEllipse (200,100,50,50);

SetFillStyle (1,0); SetColor (0); FillEllipse (180,100,50,50);

WHILE true DO Begin

SetFillStyle (1,1); FloodFill(10,10,1); SetFillStyle (1,0);

SetColor (5); SetFillStyle (1,5);

SetTextStyle(7,0,5); SetColor (0);

OutTextXY(237,117,’MENU’); OutTextXY (237,287,’EXIT’);

SetColor (12); OutTextXY (235,115,’MENU’);

SetColor (4); OutTextXY (235,285,’EXIT’);

SetTextStyle (0,0,3); SetColor (0);

OutTextXY (227,207,’D:ДЕНЬ’); OutTextXY (227,247,’N:НОЧЬ’);

SetColor (3); OutTextXY (225,205,’D:ДЕНЬ’); OutTextXY (225,245,’N:НОЧЬ’);

SetColor (15); SetTextStyle (0,0,2);

OutTextXY (100,450,’использовать клавиши D,N,ESC’);

Задача 4. Построить график функции.

X, Y : INTEGER; Mx, My, I : INTEGER;

WriteLn(‘Введите интервал и шаг изменения функции’); ReadLn(A,B,H);

WriteLn(‘Введите масштаб по X и Y’); ReadLn(Mx,My);

InitGraph(Gd,Gm,’c:p7gi’); IF GraphResult<>0 THEN HALT(1);

X0:=GetMaxX div 2; Y0:=GetMaxY div 2;

Задача 5. Построить круговую диаграмму.

Gd, Gm : INTEGER; I,N,S,C: INTEGER;

M : ARRAY[1..10] OF INTEGER;

Nk, Kk : INTEGER; P:REAL;

WriteLn(‘Введите количество значений’); ReadLn(N);

FOR I:=1 TO N DO Begin

Writeln(‘Введите ‘,I,’ значение’); ReadLn(M[I]);

InitGraph(Gd,Gm,’c:p7gi’); IF GraphResult<>0 THEN HALT(1);

FOR I:=1 TO N DO Begin

PieSlice(GetMaxX div 2,GetMaxY div 2,nk,kk,100);

C:=C+1; IF C=14 THEN C:=1;

Задача 6. Построить пятиконечную звезду.

Gd,Gm : INETEGER; X,Y,Rb,Rm : INETEGER;

Points: ARRAY [1..11] OF PointType;

InitGraph(Gd,Gm,’c:p7gi’); IF GraphResult<>0 THEN HALT(1);

ClearDevice; SetBkColor(3); SetColor(4); SetFillStyle(1,4);

WHILE (I (GetMaxX-2) THEN X:=GetMaxX-2; IF X (GetMaxY-2) THEN Y:=GetMaxY-2; IF Y =0 DO Begin

Язык программирования Паскаль исторически создавался для обучения школьников и студеностов программированию. Тем более это стало актуальным в связи с вводом ОГЭ по информатике в 9 классе.

Просмотр содержимого документа
«Язык программирования Паскаль»

ЯЗЫК ПРОГРАММИРОВАНИЯ ПАСКАЛЬ

I. Общий вид программы на языке Паскаль

Имя программы состоит из английских букв и цифр и начинается с буквы. Каждый оператор заканчивается «;». Знак «;» не ставится только после оператора BEGIN.

Строки от PROGRAM до BEGIN — называются заголовком программы и содержат раздел описаний.

— буквы английского алфавита от A до Z и от а до z;

— буквы русского алфавита от А до Я и от а до я;

— арифметические операции: «+» (сложение), «-» (вычитание), «/» (деление), «*» (умножение);

— операции сравнения: «» (больше), «=» (больше равно), «» (неравно);

— логические операции: «and» (и), «or»(или), «not» (не).

III. Стандартные математические функции

Abs(x) – Модуль числа х

Sqr(x) – Квадрат х

Sqrt(x) – Корень квадратный из х

Int(x) – Целая часть х

Frac(x) – Дробная часть х

Round(x) — Округление до ближайшего целого

Trunc(x) – Ближайшее целое, не превышающее х по модулю

х MOD у – Остаток от деления

х DIV у – Целочисленное деление

Random – Псевдослучайное число [0,1]

Random(x) – Псевдослучайное число [0,х]

Exp(x) – экспонента (е х )

Ln(x) – Натуральный логарифм

IV. Величины в Паскале

1. Константы – такие данные, которые не изменяются в процессе выполнения программы.

2. Переменные – данные, которые могут менять свои значения. Переменная характеризуется именем, типом и значением. Имя переменной состоит из латинских букв и цифр, не имеет пробела и начинается с буквы.

Тип данных – это множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип имеет свой диапазон значений и специальное зарезервированное слово для описания. Все типы данных можно разделить на две группы: простые и структурированные (составные).

Все переменные простого типа делятся на числовые и строковые.

Запишем в тетради следующую таблицу:

Обозначение в Паскале

2,9*10 -39 …1,7*10 38

от 0 до 255 символов

true (истина), false (ложь)

Действительные числа с фиксированной точкой записываются по обычным правилам арифметики, только целая часть от дробной отделяется точкой.

Если точка отсутствует, то число считается целым.

Перед числом может стоять знак «+» или «-». Если знака нет, то число считается положительным.

Описание переменных происходит по следующей схеме:

VAR a,b:integer; S:real; t:string;

V. Оператор присваивания

Оператор присваивания применяется для формирования нового значения переменной. Она аналогична равенству в математике.

Запись оператора (синтаксис):

Требования к оператору:

1. Выражение, стоящее в правой части, записывается в оду линию с указанием всех арифметических действий.

2. Слева всегда должно стоять имя переменной.

3. Типы левой и правой частей должны совпадать.

Исполнение оператора: переменной, стоящей в левой части, присваивается определенное значение в виде выражения или константы (постоянного зна­чения), стоящих в правой части.

Пример 1. Записать заголовок программы и оператор присваивания для вычисления площади треугольника по двум сторонам и углу между ними.

В данной задаче используются четыре величины:

а, b — стороны треугольника, Y — угол треугольника, данный в ради­анах, S — площадь треугольника. Все величины могут принимать дробное значение, поэтому имеют тип real.

VAR а, b, Y, S : real;

Пример 2. Записать заголовок программы и оператор присваивания для вычисления суммы квадратов четырех натуральных чисел.

В данной задаче используются пять величин:

n1, n2, n3, n4 — натуральные числа, C — их сумма. Все числа нату­ральные по условию задачи, поэтому их тип integer.

VAR n1, n2, n3, n4, C : integer;

C:=n1*n1 + n2*n2 + n3*n3 + n4*n4;

В операторе присваивания в этой программе квадрат числа можно записать как n*n или как SQR(n).

VI. Оператор вывода информации на экран.

При составлении конкретной программы возникает необходимость вывести ту или иную информацию на экран. Например, данные или определенный текст. Для этого существует команда вывода информации. Ее синтаксис:

Информацией может быть текст (текст должен быть заключен в специ­альные знаки, которые называются «апостроф»), имя переменной (тогда оно ставится без «апострофов») или комбинация этих видов информации. Исполнение команды: на экран выводится та информация, которая стоит в скобках.

WRITE(‘Уравнение не имеет корней.’); — на экран выводится предложение, заключенное в апострофы.

WRITE(x1); — на экран выводится значение переменной x1.

WRITE(‘Площадь треугольника равна’, S); — на экран выводится предложение, заключенное в апострофах, и значение переменной S.

Для того, чтобы после вывода информации курсор перемещался в начало следующей строки, в команде вывода добавляются буквы LN:

Если в задаче требуется выполнить несложные действия, то допускается запись формулы для вычисления непосредственно в скобках оператора вывода. Например,

WriteLn(‘Ответ’, 2*x + 9*y/(3*t));

VII. Оператор ввода информации с клавиатуры.

При составлении программы часто требуется ввести какие-либо данные с клавиатуры. Например, при нахождении суммы чисел, надо эти числа ввести при выполнении программы с клавиатуры. Поэтому в Паскале сущес­твует оператор ввода информации. Его запись:

где в скобках через запятую перечисляются имена тех переменных, значе­ния которых надо ввести.

Исполнение оператора: как только машина встречает эту строку, она останавливается до ввода значений указанных переменных с клавиату­ры. Пользователь вводит значения всех переменных через пробел и в конце нажимает клавишу ENTER.

Для того, чтобы значения переменных можно было вводить через клавишу ENTER, и после исполнения оператора курсор перешел в начало следующей строки, к слову READ добавляют буквы LN: ReadLn(a, b, c);

Требования к оператору:

1. количество вводимых с клавиатуры значений должно совпадать с коли­чеством переменных, указанных в операторе;

2. типы и порядок вводимых значений должны совпадать с типами и порядком переменных в операторе.

Пример 3. Составить программу, которая вводит с клавиатуры и выводит на экран дату в стандартном виде: название дня — название месяца — год.

В данной программе будут использованы переменные: день (d), месяц (m), год (g). Типы этих переменных: день и месяц — литерные величины типа string, год — целое число (тип — integer).

VAR d, m : string, g : integer;

WRITE (‘Введите день’);

WRITE (‘Введите месяц’);

WRITE (‘Введите год’);

WRITELN (‘Сегодня:’, d, ‘ ‘, m, ‘ ‘, g);

Пример 4. Составить программу вычисления суммы трех вещественных чи­сел и вывести результат на экран.

В этой программе используются четыре переменные: три числа и их сум­ма. Все переменные имеют тип real.

VAR a, b, c, S : real;

WRITE (‘Введите числа’);

WRITELN (‘Сумма чисел равна’, S);

Оператор условного перехода (оператор ветвления) имеет следующий вид:

В переводе на русский язык слова IF, THEN, ELSE означают: «если», «то», «иначе». Условие, записанное в строке If, является сравнением и может содержать знаки “=”, “”, “=”, “”.

Требования к оператору:

1. Если условие состоит из нескольких неравенств, то каждое из них заключается в скобки и между ними ставится союз and или or.

2. Если в строках Then и Else выполняется более одного оператора, то добавляются операторные скобки Begin…end, внутри которых сохраняются точки с запятой.

Y := SQRT(ABS(7 * T – 3 * Z)); end

3. Если задача на ветвление, то количество Then и Else должны совпадать.

Читайте также:  Триколор не показывает название передачи

Если задача не на ветвление, то строка ELSE может отсутствовать. Такое ветвление называется неполным.

Ис­полнение оператора: проверяется условие; если оно имеет значение «истинно», то выполняется оператор или серия операторов, стоящая после слова THEN. Если условие имеет значение «ложно», то выполняется оператор или серия операторов после слова ELSE или ничего не исполняется, если строка ELSE отсутствует.

Существует вложенное ветвление, когда в строке THEN или ELSE стоит еще одно ветвление. Такое ветвление применяется, если в задаче больше двух условий.

Существуют и другие варианты вложенного ветвления.

В записи ветвления могут быть допущены следующие ошибки:

1. Отсутствие операторных скобок для исполнения серии команд в стро­ках THEN и ELSE.

2. Поставлен знак «;» там, где он не нужен, или не поставлен в конце ветвления.

3. Условие записано неправильно: отсутствие скобок при составном ус­ловии (например, (а0) and (а

Пример 5. Составить программу вычисления корней квадратного уравне­ния ах2+bx+c=0.

В данной задаче используются следующие переменные: коэффициенты уравнения а,b,c; дискриминант уравнения D; корни уравнения х1,х2. Все эти величины имеют тип real.

VAR a,b,c,D,x1,x2 : real;

WRITELN (‘Введите коэффициенты уравнения’);

WRITELN(‘Корни уравнения:’,х1, ‘ ‘,х2);

THEN WRITELN (‘Корень уравнения, (-b)/(2*а))

ELSE WRITELN(‘Корней уравнения нет’);

Пример 6. Составить программу решения системы уравнений:

В данной программе используются две переменные х и у типа REAL.

WRITELN (‘Введите значение х’);

WRITELN (‘Значение у равно’, у);

Пример 7. Составить программу вычисления площади фигуры по заданным значениям формы и размерам.

В данной задаче используются следующие величины: форма фигуры (круг, квадрат, правильный треугольник) — переменная f, ее тип — string; раз­меры фигуры: радиус, длина стороны, высота треугольника, площадь фигуры — переменные r,a,h,S. Тип этих переменных real.

VAR f:string; a,r,h,S : real;

WRITE (‘Введите форму фигуры ‘);

WRITE(‘Введите радиус круга’);

WRITELN (‘Площадь круга равна ‘, S);

ELSE IF f=’квадрат’

WRITE (‘Введите сторону квадрата ‘);

WRITELN (‘Площадь квадрата равна ‘, S2);

WRITE (‘Введите сторону и высоту треугольника’);

WRITELN (‘Площадь треугольника равна ‘,S:3:2);

Оператор выбора имеет вид:

Требования к оператору:

— имя переменной, стоящее после слова «case», может быть только типа integer, string или char;

— типы константных выражений N1,N2. Z1,Z2. должны быть совмести­мы с типом имени переменной после слова «case».

Выполнение оператора происходит следующим образом: значение имени переменной сравнивается со значениями константных выра­жений. Если значение переменной совпадает с одним из константных выра­жений, то выполняется соответствующая команда, на этом выполнение опе­ратора «case» заканчивается. Если же такого не произошло, то выполняет­ся команда, указанная после слова «else» или не выполняется ничего, ес­ли строка «else» отсутствует.

1. case Operator of plus : z:=x+y;

0,2,4,6,8 : writeln(‘Четное число’);

1,3,5,7,9 : writeln(‘Нечетное число’); end;

Пример 8. Для поступления на факультеты ЯГПИ надо набрать следующие

баллы: ФМФ — 13 баллов, EГФ — 14 баллов, ИФФ — 14.5 баллов, ФИЯ — 15

баллов. Составить программу, которая по названию факультета выдает ко­личество баллов, нужное для поступления.

В данной задаче одна переменная — названия факультетов, она имеет тип string.

var fakultet: string;

write (‘Введите название факультета’);

case fakultet of

‘ФМФ’ : writeln (‘Kоличество баллов : 13’);

‘ЕГФ’ : writeln (‘Количество баллов : 14’);

‘ИФФ’ : writeln (‘Количество баллов : 14,5’);

else writeln (‘Количество баллов : 15’); end;

Цикл «для» имеет вид:

Выполнение цикла «for» происходит следующим образом:

Вначале параметру присваивается начальное значение; происходит выполнение операторов, стоящих в теле цикла. Затем параметру присваивается следующее зна­чение и снова выполняются операторы и т.д. Выполнение операторов в теле цикла происходит до тех пор, пока параметр не примет значение, равное следу­ющему после конечного значения число. Как только параметр примет значение, равное следующему после конечного значения, программа выходит из цикла.

Требования к циклу с параметром:

1. Параметр цикла всегда является целым числом и изменяется на единицу.

2. Если в теле цикла выполняется более одного оператора, то добавляются операторные скобки begin… end, внутри которых сохраняются точки с запятой.

3. Если начальное значение больше конечного, то слово To заменяется на Downto.

Одна штука некоторого товара стоит х руб. Сколько рублей стоят 2, 3, 4, …, 20 штук этого товара?

В данной задаче количество штук некоторого товара изменяется на единицу и является целым числом. Значит количество штук можно взять в качестве параметра цикла. Тогда 2 будет начальным значением параметра, 20 – конечным значением.

Var x:real; i:integer;

Writeln(‘введите цену одной штуки товара’);

For i:=1 to 20 do

Writeln(i , ‘штук стоят ‘ , x*i , ‘руб.’);

Пример 10. Известны оценки в аттестате выпускника по 12 предметам. Найдите его средний балл.

Для того, чтобы найти средний балл, сначала надо найти сумму всех оценок, затем разделить ее на 12. Сумма вычисляется путем накапливания (S := S+…)

var a, S:real; i:integer;

for i:=1 to 12 do begin

writeln(‘введите оценку по ‘, i , ‘ предмету’);

writeln (Среднее арифметическое равно ‘, S/12);

Пример 11. Дана последовательность 10 натуральных чисел. Найти среди них количество четных чисел.

Var a, i, kol: integer;

For i:=1 to 10 do begin

Then kol:=kol+1; end;

Writeln(‘количество четных ‘, kol);

2. Цикл с предусловием

Цикл с предусловием имеет вид:

Требования к циклу с условием:

1. Условие представляет собой некоторое сравнение.

2. Переменная, стоящая в условии, перед началом цикла должна иметь начальное значение.

3. Переменная, стоящая в условии, в теле цикла должна каким-либо образом изменяться (уменьшаться или увеличиваться, вводиться с клавиатуры).

Выполнение цикла «пока»:

Переменная, стоящая в условии, получает начальное значение. Проверяется истинность условия. Выполняется тело цикла, в котором переменная, стоящая в условии, получает новое значение. Снова проверяется условие цикла. Если оно истинно, выполняется тело цикла. Если условие ложно, программа выходит из цикла.

Пример 12. Дано натуральное число. Определить, встречается ли в нем цифра «4».

Для того, чтобы определить, встречается в числе цифра «4», необходимо выделять последнюю цифру числа и сравнивать ее с 4. Для этого необходимо воспользоваться функцией mod. Затем эту цифру необходимо «вычеркнуть» из числа. Для этого надо воспользоваться функцией div. «Отбрасывание» последней цифры в числе и является изменением исходного значения.

Выполнять указанные действия надо до тех пор, пока число не станет равным нулю.

var a, c, k:niteger;

writeln (‘введите число’);

while a 0 do begin

a := a div 10; end;

then writeln (‘цифра 4 не встречается’)

else writeln (‘цифра 4 встречается ’, k ‘ раз’);

Пример 13. Дана последовательность натуральных чисел, оканчивающаяся нулем. Найдите среднее арифметическое четных чисел.

Для нахождения среднего арифметического необходимо каждое число проверить на четность, найти их сумму и количество. В ответе сумму разделить на количество.

Var a, k, s:integer;

Writeln (‘Введите первое число’);

While a 0 do begin

writeln (‘Введите следующее число’);

writeln (‘Среднее арифметическое ’, s/k);

3. Цикл с постусловием

Общий вид цикла с постусловием:

Требования к циклу с условием:

1. Условие представляет собой некоторое сравнение.

2. Переменная, стоящая в условии, перед началом цикла должна иметь начальное значение.

3. Переменная, стоящая в условии, в теле цикла должна каким-либо образом изменяться (уменьшаться или увеличиваться, вводиться с клавиатуры).

4. Цикл выполняется, пока условие в строке until ложно. Как только условие становится истинным, машина выходит из цикла.

Рассмотрим решение тех же задач, что и для цикла с предусловием.

Пример 14. Дано натуральное число. Определить, встречается ли в нем цифра «4».

var a, c, k:niteger;

writeln (‘введите число’);

then writeln (‘цифра 4 не встречается’)

else writeln (‘цифра 4 встречается ’, k ‘ раз’);

Пример 15. Дана последовательность натуральных чисел, оканчивающаяся нулем. Найдите среднее арифметическое четных чисел.

Var a, k, s:integer;

Writeln (‘Введите первое число’);

writeln (‘Введите следующее число’);

writeln (‘Среднее арифметическое ’, s/k);

Массивы — структурированный тип данных, представляющий из себя набор однотипных пронумерованных компонент. Например, список учеников в классе представляет собой набор фамилий с номерами — вид массива.

Массив можно представить в виде некоторой таблицы. Если в таблице одна строка, то это одномерный массив. Если несколько – то двумерный.

В 9 классе изучается только одномерный массив.

Одномерный массив представляет из себя строку пронумерованных од­нотипных компонентов. Образно представим массив в виде некоторой таблицы:

Для того, чтобы с массивом можно было работать, надо, чтобы он имел имя (М); каждый элемент должен иметь свой номер (индекс) и значение.

Обращение к элементу массива:

Вызов элемента массива в общем виде: M[i], где i – индекс элементов массива.

а) Описание (объявление) массива

Существует два способа описания (объявления) массива.

I способ. Описание массива происходит между строками program и var. Для работы с массивом вводят дополнительный тип:

type tabl = array [..] of ;

II способ. Описание массива происходит в строке Var.

Var M : array [нач.знач. .. ] of ;

Для того, чтобы программа могла быть применима для любого количества элементов массива, конечное значение принимают равным n, а значение переменной n дается в строке const (после строки program):

Например, const n = 10;

б) Ввод элементов массива с клавиатуры.

в) Вывод элементов массива на экранможет осуществляться двумя способами: в строку и в столбец.

1) вывод в строку:

For i:=1 to кон.зн. do

2) вывод в столбец

writeln (i ‘ элемент ’ , M[i]);

Пример 16. Найти среднее арифметическое элементов массива.

Var A:array[1..15] of real; S:real; i:integer;

Writeln(‘введите элементы массива’);

Writeln (‘Среднее арифметическое’ , S/n);

Пример 17. Найти наибольший элемент массива.

Var A:array[1..15] of real; max:real; i:integer;

При пользовании «Инфоуроком» вам не нужно платить за интернет!

Минкомсвязь РФ: «Инфоурок» включен в перечень социально значимых ресурсов .

задач с решениями

Компьютер в первую секунду печатает на экране 1, во вторую – число 12, в третью – число 23. То есть, в каждую следующую секунду – на 11 больше, чем в предыдущую. В какую секунду впервые появится число, делящееся на 2009?

while x mod 2009<>0 do

writeln (‘Через ‘, k, ‘ секунд’);

Найдите количество четных цифр в десятичной записи числа n .

if y mod 2 =0 then k:=k+1;

Выясните, лежат ли на одной прямой точки А(x1, y1), B(x2, y2), C(x3, y3)

Точки лежат на одной прямой

x1, x2, x3, y1, y2, y3, z, n:real;

write (‘Введите координаты точки А ‘);

write (‘Введите координаты точки В ‘);

write (‘Введите координаты точки C ‘);

if (z=n) and (z=(x2-x1)/(y2-y1)) then

writeln (‘Точки лежат на одной прямой’)

writeln (‘Точки не лежат на одной прямой’);

Сообщество роботов живет по следующим законам: один раз в год они объединяются в полностью укомплектованные группы по 3 или 5 роботов (причем число групп из 3 роботов — максимально возможное). За год группа из 3 роботов собирает 5, а группа из 5 — 9 новых собратьев. Каждый робот живет 3 года после сборки. Известно начальное количество роботов (К>7), все они только что собраны. Определить, сколько роботов будет через N лет.

var k, i, n, p:integer;

r:array [1..3] of longint;

write(‘количество роботов k=’); readln(k);

write(‘количество лет n=’); readln(n);

else if p=1 then begin x:=x-3; y:=2 end

Читайте также:  Crusader kings 2 вылетает при загрузке

else begin x:=x-1; y:=1 end;

writeln (‘Количество роботов — ’,s);

Суточный рацион коровы составляет a кг сена, b кг силоса и c кг комбикорма. В хозяйстве, содержащем стадо из k голов, осталось x центнеров сена, y тонн силоса и z мешков комбикорма по 50 кг. Сколько еще дней хозяйство сможет кормить коров по полному рациону.

if (x>=r) and (y>=r) and (z>=r) then

Предприниматель, начав дело, взял кредит размером k рублей под p процентов годовых и вложил его в свое дело. По прогнозам, его дело должно давать прибыль r рублей в год. Сможет ли он накопить сумму, достаточную для погашения кредита, и если да, то через сколько лет?

while (k>0) and (kol

if kol>=50 then writeln (‘no’) else writeln (kol);

Дано два целых положительных числа: a и b . Требуется написать программу, которая находит цифру, на которую оканчивается число a ^ b .

writeln (‘Введите a’); readln (a);

writeln (‘Введите b’); readln (b);

if b=1 then writeln (a)

Из одного порта в другой необходимо перевезти 15 различных грузов. Грузоподъемность судна, на котором будет проходить перевозка, 50 тонн. Грузы пронумерованы, и информация о массах грузов хранится в массиве М(15). Определить, сколько рейсов необходимо сделать судну, если грузы неделимы и могут перевозиться только подряд в порядке их нумерации. (Предполагается, что масса отдельного груза не превышает 50 тонн).

mas=array[1..15] of integer;

for i:=1 to 15 do

writeln (‘Потребовалось, k,’рейсов’);

Коммерсант, имея стартовый капитал k рублей, занялся торговлей, которая ежемесячно увеличивает капитал на p% . Через сколько лет он накопит сумму s , достаточную для покупки собственного магазина?

writeln (‘Введите стартовый капитал’);

writeln (‘Введите % увеличения капитала’);

writeln (‘Введите сумму, необходимую для покупки магазина’);

writeln (‘Количество лет -‘,int(n/12));

Число Цукермана – натуральное число, которое делится на произведение своих цифр, например: 175 делится на 1·7·5=35. Составить программу, которая выводит на экран все трехзначные числа Цукермана.

var i,a,b,c: integer;

for i := 111 to 999 do

b := (i div 10) mod 10;

if (b <> 0) and (c <> 0) and (i mod (a * b * c) = 0) then writeln (i);

На конференцию приехало N человек. Для их перевоза выделили автомобили вместимостью К и М человек (без водителя). К гостинице автомобили подаются в таком порядке: сначала вместимостью К человек, потом – М человек и так далее. В автомобиле можно перевозить не более максимально допустимого количества пассажиров. Определить, сколько необходимо автомобилей для перевозки всех делегатов конференции.

writeln (‘Введите количество участников’);

writeln (‘Введите вместимость первого автомобиля’);

writeln (‘Введите вместимость второго автомобиля’);

if x mod 2<>0 then N:=N-K else N:=N-M;

Имеется четыре коробки спичек и в каждой из них по 15 спичек. Номер коробки, из которой берется очередная спичка, выбирается случайно. Сколько спичек будет сожжено, прежде чем одна из коробок опустеет? Составить программу.

A: array [1..4] of integer;

writeln (‘В коробке’, n, ‘закончились спички’);

writeln (‘Израсходовано спичек’, m);

Сформировать квадратную матрицу следующего вида.

A: array [1..5, 1..5] of byte;

Дано число типа byte . Проверить, является ли палиндромом его двоичное представление с учетом того, что сохранены старшие нули. Пример таких чисел: 102 (т. к. 102 = 0110 0110 2 , а это палиндром), 129 (129 = 1000 0001 2 ) и т. д.

a := 8 * a + 4 * b + 2 * c + d;

Даны два натуральных числа. Найти их наименьшее общее кратное.

Примечание: наименьшим общим кратным двух чисел m и n называется наименьшее натуральное число, которое делится на m и n . Обозначение: НОК(m, n)

while m <> n do begin

if m > n then begin

writeln(prod div m)

Дана последовательность символов длины n ( n >= 1 ). Проверить баланс круглых скобок в этом выражении. Например, при вводе выражения (())() программа должна сообщить о правильности расстановки скобок, а при вводе выражения ((()) – о неправильности.

Примечание: сбалансированной скобочной записью называется символьное выражение, в котором каждой открывающей скобке соответствует закрывающая скобка правее и наоборот, каждой закрывающей скобке соответствует открывающая скобка левее.

for i := 1 to n do begin

if c = ‘(‘ then inc(count);

if c = ‘)’ then dec(count);

if count = -1 then break

Сколько существует упорядоченных пар натуральных чисел а и b , для которых известны их наибольший общий делитель d и их наименьшее общее кратное m ?

a, b, i, j, d, m:integer;

function nod(a, b:integer):integer;

if a=b then nod:=a

if a>b then nod:=nod(a-b, b) else nod:=nod(a, b-a)

writeln (‘Введите НОД двух чисел d’);

writeln (‘Введите НОK двух чисел m’);

for i:=1 to 100 do

for j:=1 to 100 do

if ((nod(a, b)=d) and ((a*b div nod(a, b))=m)) then writeln (i, j);

Правительство гарантирует, что инфляция в новом году составит р % в месяц. Какого роста цен за год можно ожидать? Составить программу решения задачи.

Сложные проценты вычисляются по формуле .

writeln (‘Введите процент месячной инфляции’);

Факультету выделен стипендиальный фонд в размере f рублей в месяц. Результаты сессии таковы: «отличников», «хорошистов», «троечников». Повышенная стипендия (для отличников) составляет рублей, обычная — рублей; задолжники стипендии лишаются. Составить программу, определяющую сколько студентов каждой категории могут получать стипендию и каков будет остаток фонда на материальную помощь малоимущим студентам?

writeln (‘Введите размер фонда’);

writeln (‘Введите количество отличников, хорошистов и троечников’);

writeln (‘Введите размер стипендий’);

if f>s1*n1 then k1:=n1 else k1:=f div s1;

if f>s2*n2 then k2:=n2 else k2:=f div s2;

if f>s2*n3 then k3:=n3 else k3:=f div s2;

writeln (‘Количество отличников, получивших стипендию=’,k1);

if k2>0 then writeln (‘Количество хорошистов, получивших стипендию= ‘,k2);

if k3>0 then writeln (‘Количество троечников, получивших стипендию =’,k3);

writeln (‘Фонд материальной помощи=’, f);

N коробок стоят по кругу. В i -ой коробке j змей. Каждую минуту змеи переползают в соседнюю коробку (из i -ой в i+1 -ую), а из N -ой – в первую. Составить программу, определяющую количество змей в каждой коробке через М минут.

writeln (‘Введите количество коробок n’);

writeln (‘Введите количество минут m’);

if m=0 then begin j:=0; m:=n end else j:=n-m;

У Вас имеется в наличии 2000 рублей. Вам необходимо купить в общей сложности 200 предметов по следующим ценам: фломастеры — 20 рублей за упаковку, тетради общие — 10 рублей за штуку, стержни — 1,5 рубля за штуку. Вы должны потратить все деньги.

for x:=1 to 200 do

for y:=1 to 200 do

for z:=1 to 200 do

if (sum=2000) and (kol=200) then writeln(‘фломастеры -‘,x,’ тетради -‘, y, ‘ стержни -‘, z);

Имеется N точек, расположенных в произвольном порядке на плоскости. Найти две точки, расстояние между которыми наименьшее.

a:array[1..n] of integer;

b:array[1..n] of integer;

FOR i:= 1 TO n do

m:=SQRT(SQR(a[1] — a[2])+ SQR(b[1] — b[2]));

FOR i:= 1 TO n — 1 do

FOR j:= i + 1 TO n do

q:=SQRT(SQR(a[1] — a[2])+ SQR(b[1] — b[2]));

В книге N страниц. Составить программу подсчета количества десятичных цифр, требуемых для нумерации всех страниц книги. Нумерация проводится от 1 и далее.

writeln (‘Количество десятичных цифр=’ ,s);

Король Флатландии решил вырубить некоторые деревья, растущие перед его дворцом. Деревья перед дворцом короля посажены в ряд, всего там растет N деревьев, расстояния между соседними деревьями одинаковы.

После вырубки перед дворцом должно остаться M деревьев, и расстояния между соседними деревьями должны быть одинаковыми. Помогите королю выяснить, сколько существует способов вырубки деревьев.

Требуется написать программу, которая по заданным числам N и M определит, сколько существует способов вырубки некоторых из N деревьев так, чтобы после вырубки осталось M деревьев и соседние деревья находились на равном расстоянии друг от друга.

writeln (‘Количество способов вырубки деревьев=’, s);

Из элементов массива А(2n) получить массивы В(n) и C(n) следующим образом. Выбрать в массиве А два наиболее близких по значению элемента; меньший из них поместить в массив В, а больший – в массив С. Продолжить выбор из оставшихся элементов до полного заполнения массивов В и С.

8 0 10 4 1 99 3 15 2 11

a:array[1..10] of real;

b:array[1..5] of real;

c:array[1..5] of real;

for i:=1 to 10 do

for i:=1 to 10 do

for i:=1 to 10 do

for j:=i+1 to 10 do

if i mod 2<>0 then

Дан прямоугольник, длины сторон которого равны натуральным числам А и В . Составить программу, которая будет находить на сколько квадратов можно разрезать данный прямоугольник, если от него каждый раз отрезать квадрат наибольшей площади.

while (a<>0)and (b<>0) do

writeln(a, ‘ * ‘, a, ‘ — ‘, c);

writeln(b, ‘ * ‘, b, ‘ — ‘, c);

Папа Карло, играя на шарманке, ежедневно зарабатывает у туристов 5 золотых (монет). Весь заработок уходит на обед папы Карло и его друзей в харчевне «Три пескаря», где плату принимают только деревянными (монетами). В меняльных лавках папу Карло не обслуживают. Банкир Карабас-Барабас для друзей папы Карло установил индивидуальные правила обмена золотых на деревянные в разных лавках (смотри таблицу). Каждый из друзей может обменять только один золотой и в каждой лавке могут обслужить только одного из друзей.

Таблица обмена одного золотого на деревянные

Составить программу нахождения оптимального плана обмена 5 золотых на деревянные в виде: Буратино, N лавки; Мальвина, N лавки; Пьеро, N лавки; Арлекино, N лавки; Артемон, N лавки; количество полученных деревянных.

В программе рассматривается =120 возможных вариантов обмена золотых монет на деревянные и выбирается оптимальный вариант обмена.

F:array[1..5] of integer;

P:array[1..5] of string;

Q[1, 1]:=12; Q[1, 2]:=13; Q[1, 3]:=10; Q[1, 4]:=7; Q[1, 5]:=8;

Q[2, 1]:=10; Q[2, 2]:=11; Q[2, 3]:=9; Q[2, 4]:=7; Q[2, 5]:=9;

Q[3, 1]:=11; Q[3, 2]:=10; Q[3, 3]:=9; Q[3, 4]:=8; Q[3, 5]:=4;

Q[4, 1]:=10; Q[4, 2]:=11; Q[4, 3]:=8; Q[4, 4]:=10; Q[4, 5]:=5;

Q[5, 1]:=7; Q[5, 2]:=12; Q[5, 3]:=10; Q[5, 4]:=9; Q[5, 5]:=7;

P[1]:=’Буратино’; P[2]:=’Мальвина’; P[3]:=’Пьеро’;

if (a<>b) AND (a<>c) AND (a<>d) AND (a<>e) AND (b<>c) AND (b<>d)AND (b<>e) AND (c<>d) AND (c<>e) AND (d<>e) then

writeln (P[i], ‘ номер лавки — ‘, F[i], ‘ количество денег -‘, Q[F[i], i]);

Бесплатный
Дистанционный конкурс «Стоп коронавирус»

  • Кривихина Надежда МихайловнаНаписать 0 03.05.2018

Номер материала: ДБ-1543274

Добавляйте авторские материалы и получите призы от Инфоурок

Еженедельный призовой фонд 100 000 Р

«Развитие эмоционального интеллекта»

Спикер: Анна Быкова (#лениваямама)

    03.05.2018 260
    03.05.2018 417
    03.05.2018 86
    03.05.2018 236
    03.05.2018 213
    03.05.2018 822
    03.05.2018 416
    03.05.2018 616

Не нашли то что искали?

Как организовать дистанционное обучение во время карантина?

Помогает проект «Инфоурок»

Вам будут интересны эти курсы:

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение редакции может не совпадать с точкой зрения авторов.

Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако редакция сайта готова оказать всяческую поддержку в решении любых вопросов связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.

9726552