- •1.1 Краткие сведения
- •1.2 Единицы количества информации:вероятностный и объемный подходы
- •Вероятностный подход
- •Объемный подход
- •2. Системы счисления
- •2.1 Перевод чисел из одной позиционной системы счисления в другую. Арифметические операции
- •3. Представление данных в памяти эвм
- •4. Логические основы
- •Алгебра логики
- •Алгоритм построения таблицы истинности:
- •4.Законы логики высказываний
- •5. Дополнительные логические операции
- •5. Решение логических задач с помощью математической логики
- •Задача 1
- •Задача 2
- •Задача 3
- •Задача 4
- •Задача 6.
- •6. Паскаль как язык структурно-ориентированного программирования
- •Краткие сведения
- •6.1 Основные операторы языка
- •6.2 Структуры данных
- •6.3 Составные типы
- •6.4 Подпрограммы
- •6.5 Файлы
- •6.6. Динамические переменные и указатели
- •7. Примеры на программирование простых алгоритмов
- •8. Циклы с условиями
- •9. Простые типы данных. Символьный тип.Перечисляемые и интервальные типы
- •10. Вещественный тип
- •11. Перечисляемые и интервальные типы
- •12. Примеры рекурсивного программирования
- •13. Файлы. Файловый тип данных. Открытие файла. Чтение и запись
- •14. Текстовые файлы
- •15. Массивы
- •16. Методы работы с элементами одномерного массива
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.
