- •Тема 1. Арифметика действительных чисел. Вычисления по формулам Задача 11 в
- •Тема 2. Разветвления
- •Задача 27б
- •Тема 3. Простейшая целочисленная арифметика
- •Задача 14в
- •Тема 4. Простейшие циклы Задача 11
- •Тема 5. Простейшие графические построения Задача 15
- •Тема 6. Пошаговый ввод данных и вывод результатов
- •Тема 7. Сочетания цикла и разветвления
- •Тема 8. Обработка последовательностей символов
- •Тема 9. Вычисления с сохранением последовательности значений
- •Тема 10. Вложенные циклы
- •Тема 11. Вложенные циклы в матричных задачах
- •Тема 12. Использование процедур
- •Тема 13.Файлы
- •Тема 14. Списки
Тема 6. Пошаговый ввод данных и вывод результатов
Задача 1д
Задание:
Даны натуральное число n, действительные числа a1, ..., an. Вычислить: д) a[1]*a[2]* ...* a[n];
Алгоритм:
Вводим натуральное n
I=1
Вводим a[i]
i=i+1
Если i<=n, то переход к шагу 3, иначе- идем дальше
s=1
i=1
s=s*a[i]
i=i+1
Если i<=n, то переход к шагу 8, иначе - идем дальше
Вывод на экран результата s
Протокол:
В процессе диалога вводим n=5
2.1. i=1, вводим a[i]=1
2.2. i=2, вводим a[i]=2
2.3. i=3, вводим a[i]=3
2.4. i=4, вводим a[i]=4
2.5. i=5, вводим a[i]=5
s=1
4.1 i=1, s=1*1=1
4.2 i=2, s=1*2=2
4.3 i=3, s=2*3=6
4.4 i=4, s=6*4=24
4.5 i=5, s=24*5=120
5) Печать «Ответ : 120.0000»
Блок-схема:
Реализация :
program t6_num1d;
var
a:array [1..100] of real;
i,n:integer;
s:real;
begin
Write('Введите натуральное n (n<=100) :');
Readln(n);
Writeln('Введите последовательность действительных чисел');
for i:=1 to n do
begin
Write('a[',i,']=');
Readln(a[i]);
end;
s:=1;
for i:=1 to n do
s:=s*a[i];
Writeln('Ответ :',s:10:4);
Readln;
end.
Тема 7. Сочетания цикла и разветвления
Задача 69 а
Задание:
Дано натуральное число n, x1,y1,...,x[n],y[n]. Построить на экране точки с координатами x[i],y[i]: a) расположенные в верхней половине экрана;
Алгоритм:
Ввод n
Ввод координат точек x[i], y[i] (в цикле, см. тема 6, задача1д)
i=1
Блок построения точек, расположенных в верхней части экрана:
2.1 Если y[i]<=240, то стоим эту точку
2.2 i=i+1
Выход из программы
Блок-схема:
Реализация:
program t7_num69a;
uses graph;
var
koord:array [1..1000] of PointType;
i,n,mode,regim:integer;
begin
Write('Введите натуральное n (n<=100) :');
Readln(n);
Writeln('Введите последовательность натуральных чисел x[i], y[i]');
for i:=1 to n do
begin
Write('x[',i,']=');
Readln(koord[i].x);
Write('y[',i,']=');
Readln(koord[i].y);
end;
mode:=Detect;
InitGraph(mode,regim,'');
ClearDevice;
SetBkColor(blue);
for i:=1 to n do
if koord[i].y<=240 then
PutPixel(koord[i].x,koord[i].y,yellow);
Readln;
end.
Протокол:
В процессе диалога вводим n=2
x[1]=50, y[1]=100
x[2]=100,y[2]=50
y[1]=100<240, строим точку 1
y[2]=50<240, строим точку 2
В результате получаем две желтые точки в верхней части синего экрана
Тема 8. Обработка последовательностей символов
Задача 9
Задание:
Дана строка символов. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от *.
Алгоритм:
Вводим начальную строку
i=1, s=’’
Если st[i]<>’*’, то дублируем этот символ в строку s:=st[i]+st[i]
i=i+1
Если i<= длины строки, то переходим к шагу 3, иначе – выход
Реализация:
program t8_num9;
var
i:integer;
st,S:string;
begin
Writeln('Введите строку символов');
Readln(st);
s:='';
for i:=1 to length(st) do
if st[i]<>'*' then s:=s+st[i]+st[i];
Writeln('Получили строку :');
Writeln(s);
Readln;
end.
Блок-схема:
Протокол:
В процессе диалога вводим st=’wr*t*’
s=’’
3.1 st[1]=’w’<>’*’ , s=s+’w’+’w’=’ww’
3.2 st[2]=’r’<>’*’ , s=s+’r’+’r’=’wwrr’
3.3 st[3]=’*’
3.4 st[4]=’t’<>’*’ , s:=s+’t’+’t’=’wwrrtt’
3.5 st[5]=’*’
3.6 length(st)=5
Печать ‘Получили строку : wwrrtt’