Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lectures on computer science.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
219.6 Кб
Скачать

7. Примеры на программирование простых алгоритмов

Пример 1. Вывести на экран большее из двух данных чисел

Program Example_1;

Var x,y: Integer;

Begin

Writeln('введите 2 числа’);

Readln(x,у); {вводим два целых числа через пробел}

If x>y Then Writeln (х); {если (If)x больше у, то (Then) выводим х}

Else Writeln(у); {иначе (Else) выводим у}

Readln;

End.

Пример 2 Даны целые числа а, b, с. Если а<=b<=с, то все числа заменить их квадратами, если а>b>c, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа.

Решение.

Условие задачи перепишем следующим образом:

а = а2, b = b2, с = с2, если а <= b <= с,

а = с, b = с, если а > b > с,

а = -a, b = - b, с = -с, в остальных случаях.

Program Example_2;

Var a,b,c: Integer;

Begin

Writeln('Введите числа a,b,c');

Readln(a,b,c);

If (a<=b) And (b<=c) Then

Begin a:=sqr(a); b:=sqr(b); c:=sqr(c) End

Else If (a>b) And (b>c) Then

Begin a:=c; b:=c

End

Else Begin a:=-a; b:=-b; c:=-c End;

Writeln(a:3,b:3,c:3);

Readln; End.

Пример 3 Составить программу вычисления значения выражения у=((...(202- 192)2- 182)2-... - 12)2.

Решение. В данном случае целесообразно организовать цикл с параметром, изменяющимся от 20 до 1, то есть шаг изменения параметра равен -1.

Обозначим: у - очередное значение квадрата числа; п - параметр цикла. Учитывая это, составим программу:

Program Example_4;

Var у, n:Integer;

Begin

y:=sqr(20);

For n:=19 Downto 1 Do у:=sqr(y-sqr(n)); Writeln('Значение выражения равно'); Writeln(у);

End.

Пример 4. Из чисел от 10 до 99 вывести те, сумма цифр которых равна n (0 <n< 18) Решение. Обозначим: k - это просматриваемое число, p - это первая цифр числа k, p2 - это вторая цифра числа k, s - это сумма цифр данного числа k. Число k будем выписывать только в том случае, когда сумма p1 и p2 будет равна .s.

Program Example_4;

Var k,n,pi,p2,s:Integer;

Begin

Writeln('введите целое число1);

Readln(n); {вводим целое число}

For k:=10 To 99 Do {для(For) k от 10 до(То) 99 делать(Do)}

Begin

pl:=k Div 10; {выделяем первую цифру}

p2:=k Mod 10; {выделяем вторую цифру}

s:=pl+p2; {находим сумму цифр}

If s=n Then Writeln(k); {если сумма равна п, то выводим К

End;

Readln;

End.

Пример 5. Дано число п. Каким образом можно построить «перевертыш» данного числа ?

Решение. Обозначим: n - вводимое число, m — дубликат числа n, a - перевертыш числа n, i — переменная цикла для создания перевертыша.

Program Example_5;

Var n,m,a,i:Integer;

Begin

Writeln('введите целое число, не большее 9999');

Readln (n); {вводим целое число}

m:=n; a:=0;

{создание перевертыша}

For i:=l To 4 Do {так как число четырехзначное}

Begin

a:=a*10+m Mod 10; m:=m Div 10; End;

If a=n Then Writeln('ДА!') Else Writeln('НЕТ!!!'); {если перевертыш равен данному числу, то выводим «ДА», иначе — «НЕТ»}

Readln;

End.

Пример 6. Даны натуральные числа п, к (п, к<9999). Из чисел от п до к выбр те, запись которых содержит ровно три одинаковые цифры. Например, числа 0006 , 0060, 6766, 5444, содержат ровно три одинаковые цифры.

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

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

Фрагмент решения

Begin {Example_6};

Writeln('Введите два числа, не больших 9999'); Readln(n, к); For i:=n To k Do Begin

m::=i; {выделение цифр: al — первая, а2 — вторая,аЗ — третья, а4 четвертая}

a4:=m Mod 10; m:=m Div 10;

аЗ:=m Mod 10; m:=m Div 10;

а.2:=m Mod 10; al:=m Div 10;

{проверка условий}

If ((al=a2) And (al=a3) And (al<>4)) Or

{первое условие}

((al=a2) And (al=a4) And (al<>a3)) Or {второе условие}

((al=a3) And (al=a4) And (al<>a2)) Or {третье условие}

((a2=a3) And (a2=a4) And (a2<>al)) {четвертое условие}

Then Writeln (i:5);

End;

Readln;

End.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]