- •Структура программы
- •Запись основных арифметических функций Правила записи основных арифметических функций на языке Турбо-Паскаль приведены в табл. 10.
- •Примеры записи выражений
- •Тема №8. Ввод/вывод данных
- •Вывод данных
- •Пример 8.1. Необходимо вывести следующие значения:
- •Пример 8.2. Необходимо вывести следующие значения:
- •Ввод данных
- •Тема №9. Операторы
- •Оператор присваивания
- •Оператор перехода
- •Условный оператор
- •Операторы цикла
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Оператор выбора
- •Текст программы
- •Результат работы программы:
- •Структурированные типы данных
- •Возможность обработки структурированных типов данных является большим достоинством языка тр и делает его универсальным языком программирования. Регулярные типы данных. Массивы
- •Ввод/вывод массивов
- •Работа с массивами
- •Текст программы
- •Обработка массивов
- •Текст программы
- •Результат работы программы:
- •Текст программы
- •Результат работы программы:
Работа с массивами
Особенности работы с массивами рассмотрим на конкретном примере.
Пример 11.1. Для заданного массива вещественных чисел, состоящего из 10 элементов,
{-3,7 -5,6 4,6 2,1 3,1 -2,4 5,6 5,4 -6,7 3,5}
вычислить по формуле: , где а = 0,2510-3.
Текст программы
Program pm;
Uses CRT;
Const n=10;
Type vec=array[1..n] of real;
Var
x, y :vec;
a :real;
i :integer;
Begin
clrscr;
Writeln('Введите массив х:');
For i:=1 to n do Read(x[i]); Readln;
For i:=1 to n do y[i]:=2*exp(a*x[i])+ sqrt(abs(x[i]/2));
Writeln('Результат:':20);
Writeln(' y[i]=’);
For i:=1 to n do Writeln(y[i]:10);
End.
Обработка массивов
Под обработкой массива будем понимать задачи нахождения с учетом некоторых условий суммы, произведения, количества элементов, минимального, максимального элемента массива, сортировка массивов по возрастанию и убыванию и др. аналогичные задачи. Для отладки программ с массивами часто удобно использовать генераторы случайных чисел. Рассмотрим это на примерах.
Пример 11.2. Сформировать массив целых случайных целых чисел в диапазоне значений -10..10 и найти максимальный и минимальные элементы.
Текст программы
Program lr4_02;
Uses CRT;
Const n=10;
k1=10;
k2=k1*2+1;
Type vec =array[1..n] of integer;
Var
a :vec;
i, f, mi, ma :integer;
Begin
ClrScr;
Randomize;
Writeln('Исходный массив:');
For i:=1 to n do
Begin
f:=random(k2);
a[i]:=k1-f;
Write(a[i]:3,' ':3);
End;
mi:=100;
ma:=-100;
For i:=1 to n do
Begin
If a[i] > ma then ma:=a[i];
If a[i] < mi then mi:=a[i];
End;
Writeln;
Writeln('Результат:');
Writeln('ma=',ma,' ':5,'mi=',mi);
Repeat Until KeyPressed
End.
Результат работы программы:
Исходный массив:
9 6 -8 -10 8 -10 5 -9 -9 -10
Результат:
ma=9 mi=-10
Пример 11.3. Сформировать массив случайных целых чисел в диапазоне -10..10
и найти сумму отрицательных и произведение положительных элементов.
Текст программы
Program lr4_0;
Uses crt;
Const n=10;
k1=10;
k2=2*k1+1;
Type vec = array[1..n] of integer;
Var
x :vec;
f,s,i,kp :integer;
p :longint;
Begin
clrscr;
randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
f:= random(k2);
x[i]:=k1-f;
write(x[i]:4,' ':2)
end;
s:=0;
p:=1;
kp:=0;
for i:=1 to n do
begin
if x[i] < 0 then s:=s+x[i];
if x[i] > 0 then
begin
p:=p*x[i] ;
kp:=kp+1
end
end;
writeln;
writeln('Результат:');
writeln('s=',s,' ':4,'p=',p);
writeln('Количество пол. эл-в =>', kp:5);
readln;
end.
Результат работы программы:
Исходный массив:
-10 0 3 -10 9 -9 10 -3 -5 9
Результат:
s=-37 p=2430
Количество пол. эл-в => 4