- •Основные этапы решения задач на компьютере
- •Контрольные вопросы и задания
- •Язык программирования Паскаль
- •Запуск и настройка среды
- •Набор и редактирование исходного текста программы
- •Компиляция и запуск программы
- •Структура программы на Паскале
- •Арифметические операции
- •Основные стандартные функции, определенные в Паскале:
- •Логические операции
- •Типы данных
- •Операторы ввода и вывода
- •Read (список переменных) – этим оператором вводятся последовательно значения переменных из списка;
- •Readln (список переменных) – тоже что и read, но с переводом курсора на новую строку после ввода последней переменной;
- •2. Оператор вывода
- •Линейный алгоритм
- •Раздел var?
- •Разветвляющиеся вычислительные процессы
- •2.Оператор выбора case
- •Циклические вычислительные процессы
- •Операторы цикла могут быть вложены один в другой:
- •Отличие цикла for от while и repeat.
- •Массивы
- •Типовые алгоритмы обработки массивов.
- •Процедуры и функции
- •Функции
- •Строковые переменные
- •Стандартные процедуры и функции для работы со строковыми переменными
- •Множества
- •Формирование множеств
- •Отношения и операции над множествами
- •Список использованной литературы:
Операторы цикла могут быть вложены один в другой:
Если известно число повторений, то лучше применить цикл с параметром. Переменная цикла может быть целой или символьной, меняется на единицу увеличиваясь или уменьшаясь.
Изменять значение переменной (т.е. присваивать ей какие-либо значения) в теле цикла нельзя.
Общая форма записи оператора цикла FOR
a)FORимя переменной:= начальное значениеTOконечное значениеDO
BEGIN
Тело цикла;
END;
б) FORимя переменной:= конечное значениеDOWNTOначальное значениеDO
BEGIN
Тело цикла;
END;
For i:=0 to 5 do оператор;
For i:=5 downto 1 do оператор;
Если в цикле необходимо выполнить не один оператор, а несколько, то применяют beginend
For i:=0 to 5 do begin
Оператор1;
Оператор2;
End;
Вычислить значение функции y=x+2; для х от 1 до 10.
Var
X,y:integer;
begin
For x:=1 to 10 do begin
Y:=x+2;
Writeln(‘x=’,x,’y=’,y)
End;
End.
Найти сумму всех двузначных чисел.
Var
X,S:integer;
Begin
S:=0;
For x:=10 to 99 do S:=s+x;
Writeln(‘x=’,x,’s=’,s)
End
Найти сумму всех двузначных чисел кратных 3.
Var
X,S:integer;
Begin
S:=0;
For x:=10 to 99 do If x mod 3=0 then S:=s+x;
Writeln(‘x=’,x,’s=’,s)
End.
Найти сумму всех двузначных чисел больших числа, введенного с клавиатуры.
Var
X,S,D:integer;
Begin
S:=0;
Write(‘введите число D’);
Read(d);
For x:=10 to 99 do If x >d then S:=s+x;
Writeln(‘x=’,x,’s=’,s)
End
Вывести таблицу стоимости от 1 до 10 булочек, если одна булочка стоит 1,35 руб.
Var
X:integer;
D,S:real;
Begin
d:=1,35;
For x:=1 to 10 do begin
S:=d*x;
Writeln(‘x=’,x,’s=’,s)
End;
End.
Отличие цикла for от while и repeat.
FOR |
WHILE, REPEAT |
1.Тип переменных: integer,char |
Любые |
2. Шаг = 1 или -1 |
Любой |
3. Количество повторений цикла может быть только строго определено. |
Неизвестно |
Массивы
Одномерные массивы
1йСпособ описания массива.
VAR имя массива: ARRAY [нач. знач. интервала .. конеч.знач. интер.] OF базовый тип;
Пример:
VAR A: ARRAY[1..10] OF INTEGER;
2йСпособ описания массива.
TYPE имя типа=ARRAY [нач. знач. интервала .. конеч.знач. интер.] OF базовый тип;
VAR имя массива: имя типа;
Пример:
TYPE MAS=ARRAY[1..10] OF REAL;
VAR A: MAS;
Ввод и вывод одномерного массива.
FOR I:=1 TO 10 DO
BEGIN
WRITE ('A[ ', I, ' ]=');
READLN (A[ I ]);
END;
Заполнение одномерного массива случайными числами:
BEGIN RANDOMIZE; {инициализация счетчика случайных чисел}
FOR I:=1 TO 10 DOA[ I ]:= RANDOM (10); {целые числа}
END.
Вывод элементов одномерного массива.
FOR I:=1 TO 10 DO WRITE (A[ I ], ' ');
Типовые алгоритмы обработки массивов.
Нахождение минимального (максимального) элемента массива.
MIN:= A[ 1 ]; {MAX:=A[ 1 ]}
FOR I:=2 TO 5 DO
IF MIN > A[ I ] {MAX < A[ I ]} THEN MIN:= A[ I ]; {MAX:= A[ I ]}
Массив – это упорядоченный набор однотипных элементов.
-
I,J
1
2
3
4
5
1
6
0
5
9
4
2
8
9
1
0
3
3
3
6
2
9
4
В разделе описания переменных двумерный массив описывается следующим образом:
Var
A, Mas: array [1..3,1..5] of integer;
Заполнить массив можно различными способами:
А) с клавиатуры
for i:=1 to 5 do
for J:=1 to 5 do read(a[i,j]);
B) случайными числами из интервала [a,b]. Например, числами от 10 до 39.
Randomize;
For i:=1 to 5 do
for J:=1 to 5 do a[i,j]:=random (30)+10;
С) по правилу. Например, элементы равны корню из произведения номеров строк и столбцов.
For i:=1 to 5 do
for J:=1 to 5 do a[i,j]:=2*sqrt(i*j);
Вывод элементов массива на экран.
For i:=1 to 5 do begin
for J:=1 to 5 do write(a[i,j]:2);
writeln;
end;
Дан массив размерностью nxm., заполненный случайными числами из интервала от –5 до 25. Найти количество элементов массива больших 20. Найти сумму элементов меньших 10.
Var
I,n,k,s:integer;
A: array [1..100,1..100] of integer;
Begin
Writeln(‘введи размерность массива’);readln(n,m);
Randomize;
For i:=1 to n do
for J:=1 to m do a[i,j]:=random (30)-5;
For i:=1 to n do begin
for J:=1 to m do write(a[i,j]:2);
writeln;
end;
S:=0;k:=0;
For i:=1 to n do
For j:=1 to m do begin
If a[i,j]<10 then s:=s+a[i];
If a[i,j]>20 then k:=k+1;
End;
Writeln(‘сумма =’,s:2)
Writeln(‘количество =’,k:2)
End.
Найти минимальный (максимальный) элемент двумерного массива.
MIN:= A[ 1, 1 ]; {MAX:=A[ 1, 1 ]} STR:=1; STL:=1;
FOR I:=1 TO N DO
FOR J:=1 TO M DO IF MIN > A[ I, J ] {MAX < A[ I, J ]} THEN
BEGIN
MIN:= A[ I, J ]; STR:=I; STL:=J;
{MAX:= A[ I, J ]; STR:=I; STL:=J}
Вычислить сумму элементов главной диагонали квадратной матрицы.
SUM:=0;
FOR I:=1 TO N DO SUM:= SUM + A[ I, J ];