- •Работа с массивами чисел
- •6.1. Структурированные типы данных Turbo Pascal 7.0
- •6.2. Массивы
- •Каждый элемент массива имеет свой индекс.
- •6.3. Фрагменты программ обработки массивов
- •6.3.1 Заполнение массивов
- •6.3.2 Вывод элементов массива на экран
- •6.3.3. Подсчет отрицательных и положительных элементов, их сумм и средних значений
- •6.3.4. Нахождение минимального и максимального элементов двумерного массива
- •6.3.5. Сортировка массива
- •7. Лабораторные задания и методические указания по их выполнению
- •9. Контрольные вопросы
- •6.1. Символьный (char) и строковый (string) тип данных
- •6.2.1. Основные задачи обработки текста
- •6.2.3. Выделение слов из текста (слова разделены несколькими пробелами)
- •6.2.4. Выделение символов в строке и расположение их по алфавиту
- •6.2.5. Выделение символов в строке и подсчет их вхождения
- •6.2.6. Выделение символов в строке и подсчет слов в строке
- •6.2.7. Выделение слов и упорядочение их по длине
- •6.2.8. Расположение слов по алфавиту
- •6.3. Файлы
- •Текстовые файлы определяются в разделе Var следующим образом:
- •7. Лабораторные задания и методические указания по их выполнению
- •9. Контрольные вопросы
6.3. Фрагменты программ обработки массивов
6.3.1 Заполнение массивов
Заполнение двумерного массива размерности, заданной пользователем, числами, введенными пользователем с клавиатуры
Writeln('Введите число строк - m');
Readln(m);
Writeln('Введите число столбцов - n');
Readln(n);
For i:=1 to m do
For j:=1 to n do
Begin
Writeln('Введите элемент [',i, ',',j, '] ');
Readln(Matrix[i,j]);
End;
Заполнение массива размерности 35 случайными числами
Randomize;
For i:=1 to 3 do
For j:=1 to 5 do
Matrix[i,j]:=random(100);
6.3.2 Вывод элементов массива на экран
Вывод элементов массива размерности 35 на экран последовательно в столбец
For i:=1 to 3 do
For j:=1 to 5 do
Writeln('Элемент [',i, ',',j, '] = ', Matrix[i,j]:3:3);
Вывод элементов массива размерности 35 на экран последовательно в стоку
For i:=1 to 3 do
For j:=1 to 5 do
Write(' Элемент [',i, ',',j, '] = ', Matrix[i,j]:3:3);
Вывод элементов массива размерности 35 на экран построчно
For i:=1 to 3 do begin
For j:=1 to 5 do
begin
write(' [',i,',',j,']=',Matrix[i,j]:3:3);
end;
readln;
end;
Вывод элементов одномерного массива, стоящих на четных местах, на экран построчно
For i:= 1 to n div 2 do
Write (X[2*i]);
6.3.3. Подсчет отрицательных и положительных элементов, их сумм и средних значений
Ko:=0;
Kp:=0;
So:=0;
Sp:=0;
For i:=1 To N Do
If X[i]>0 Then
Begin
Kp:=Kp+1;
Sp:=Sp+X[i]
End
Else
If X[i]>0 Then
Begin
Ko:=Ko+1;
So:=So+ X[i]
End;
If Ko<>0 Then
Begin
Sro:= So/Ko;
Writeln('Количество отрицательных чисел = ', Ko);
Writeln('Сумма отрицательных чисел = ', So:8:2);
Writeln('Среднее отрицательных чисел = ',Sro:8:2);
End
Else Writeln('В массиве нет отрицательных чисел.');
If Kp<>0 Then
Begin
Srp:= Sp/Kp;
Writeln('Количество положительных чисел = ', Kp);
Writeln('Сумма положительных чисел = ', Sp:8:2);
Writeln('Среднее положительных чисел = ', Srp:8:2);
End
Else Writeln('В массиве нет положительных чисел.');
End;
6.3.4. Нахождение минимального и максимального элементов двумерного массива
max:=mass[1,1]; k:=1; l:=1;
min:=mass[1,1]; s:=1; t:=1;
for i:=1 to m do
for j:=1 to n do
begin
if mass[i,j]>max then begin
max:=mass[i,j];
k:=i; l:= j;
end
else if mass[i,j]<min then begin
min:=mass[i,j];
s:=i; t:= j;
end;
end;
writeln ('Максимальный элемент массива [',k,',',l,']=',max:2:2);
writeln ('Минимальный элемент массива [',s,',',t,']=',min:2:2);
6.3.5. Сортировка массива
Сортировка – это расположение чисел в порядке возрастания или убывания.
Наиболее распространенный и простой метод сортировки – метод «пузырька». Он требует минимального объема памяти для данных, но затраты времени на реализацию этого метода велики. Суть метода «пузырька» в следующем.
Пусть дано n чисел, которые необходимо расположить (для определенности) в порядке возрастания. При упорядочении выполняются следующие операции:
1) числа сравниваются попарно: первое со вторым; второе с третьим; i-тое – с (i+1) - тым;
2) если меньшее стоит в паре на втором месте (числа в паре не упорядочены по возрастанию), то сравниваемые числа меняются местами.
За один такой просмотр массива минимальное число «вытолкнется», по крайней мере, на одно место вверх (вперед), а максимальное – переместится в самый конец (вниз), т.е. минимальное число как легкий пузырек воздуха в жидкости постепенно «всплывает» в начало последовательности. Отсюда – название метода. За n-1 просмотр произойдет полное упорядочение массива при любом исходном расположении чисел в нем.
For k := 1 To n-1 Do
For i := 1 To n-1 Do
If X[i] > X[i+1] Then
Begin
A:=X[i];
X[i]:=X[i+1];
X[i+1]:=A
End;