Подготовка к ЕГЭ по информатике. Часть С
Основные алгоритмы. (язык программирования ТР Pascal)
МОУ «Турочакская СОШ»
Учитель информатики: Капишников Е.А.
Основные понятия
Массив — таблица.
Одномерный массив- таблица состоящая из одного столбца или одной строки.
Двумерный массив — таблица из строк и столбцов
Объявляется в программе:
A:array[1..n] of тип данных;
B:array[1..n,1..m] of тип данных;
a[i] —значение элемента
I — индекс элемента (порядковый номер в таблице)
Алгоритмы обработки массивов
Ввод и вывод массива
Var a:array[1..n] of integer;
Begin
For i:=1 to n do
read(a[i]);
… ...............
For i:=1 to n do
write(a[i]); (или writeln(a[i]);)
a[i] then min:=a[i]; " width="640"
Алгоритм поиска максимального (минимального) элемента
Max:= самый маленький;
For i:=1 to n do
If max
Min:= самый большой;
For i:=1 to n do
If mina[i] then min:=a[i];
Алгоритм нахождения суммы и произведения
- S:=0;
- For i:=1 to n do
- S:=s+a[i];
- P:=1;
- For i:=1 to n do
- P:=P*a[i];
0 then begin s:=s+a[i]; k:=k+1; End; write(s/k); " width="640"
Алгоритм нахождения среднего арифметического положительных элементов
S:=0; k:=0;
For i:=1 to n do
If a[i]0 then
begin
s:=s+a[i]; k:=k+1;
End;
write(s/k);
Работа с элементами массива
Подсчёт количества элементов, удовлетворяющих условию
K:=0;
For i:=1 to n do
If then k:=k+1;
Сумма элементов, подходящих под условие
S:=0;
For i:=1 to n do
If then s:=s+a[i];
a[j+1] then Begin P:=a[j]; a[j]:=a[j+1]; a[j+1]:=p; End; Сортировка по возрастанию. Для сортировки по убыванию поменять знак!!! Сортирует и буквы!!!! " width="640"
Сортировка массива (упорядочивание)
For i:=1 to n do
For j:=1 to m do
If a[j]a[j+1] then
Begin
P:=a[j];
a[j]:=a[j+1];
a[j+1]:=p;
End;
Сортировка по возрастанию.
Для сортировки по убыванию поменять знак!!!
Сортирует и буквы!!!!
Алгоритмы обработки двумерного массива
Сумма элементов по строкам:
For i:=1 to n do
Begin
b[i]:=0;
For j:=1 to m do
b[i]:=b[i]+a[i,j];
End;
Сумма элементов по столбцам
For j:=1 to m do
Begin
b[j]:=0;
For i:=1 to n do
b[j]:=b[j]+a[i,j];
End;
Сумма элементов k столбца
S:=0;
For i:=1 to n do
S:=s+a[i,k];
Сумма элементов k строки
S:=0;
For j:=1 to n do
S:=s+a[k,j];
Объявление записей в тексте программы
Const lim=100;
Var info:array[1..lim] of record
Name:string;
Sum:integer;
End;
Остальные переменные
Алгоритм считывания фамилии (посимвольный ввод)
info[i].name:='';
Repeat
Info[i].name:=info[i].name+c
Until (c=' ');
Суммирование чисел из строки (посимвольный ввод)
info[i].sum:=0;
For k:=1 to 3 do
Begin
read(x);
info[i].sum:=info[i].sum+x;
End;
Readln;
Примечание: 3- количество чисел в нашей строке
Поиск трех минимальных
Min1:=макс число из диапазона;
Min2:= макс число;
Min3:=макс число;
For i:=1 to n do begin
If info[i].sum
Begin
Min3:=min2; min2:=min1;
Min1:=info[i].sum;
End
Else
If info[i].sum
Min3:=min2;
Min2:=info[i].sum;
End
Else
If info[i].sum
End;
Алгоритм подсчета количества одинаковых символов в строке, заканчивающейся точкой
Var a:array['A'..'Z'] of integer;
C,max:char;
N,i:integer;
Begin
For i:='A' to 'Z' do a[c]:=0;
Write('введите строку');
Repeat
read(c);
C:=upcase(c);
If c in ['A'..'Z'] then a[c]:=a[c]+1;
Until (c='.');
… ......
Алгоритм поиска символа, встречающегося в строке наибольшее число раз
Max:='A';
For C:='A' to 'Z' do
If a[max]
Вывод результата:
Write ('a[',max,']=',a[max];