Решение задачи
Постановка задачи
Долгожитель, т.е. человек, проживший более 100 лет, обратил внимание, что если к сумме квадратов цифр его возраста прибавить число его дня рождения, то получится как раз его возраст. Определить, сколько лет этому человеку.
Таблица идентификаторов
№ | Переменные | тип | Значения |
n | integer | Возраст человека | |
i | integer | Месяц рождения человека | |
a | integer | Единицы | |
b | integer | Остаток от деления на 100 | |
h | integer | Десятки | |
6. | с | integer | Сотни |
v | integer | Сумма квадратов цифр его возраста |
Блок-схема
![]() |
Программа
Program data;
Uses crt;
Var i, n, a, b, c, v, h: integer;
Begin
Clrscr;
For n: =100 to 999 do
for i: =1 to 31 do
begin
a: =n mod 10;
b: =n mod 100;
h: =b div 10;
c: =n div 100;
v: =a*a+h*h+c*c;
if n=i+v then writeln (n,' ', i);
end;
readln;
end.
Результат работы программы
Решение задачи
Постановка задачи
Нарисовать рисунок.
Таблица идентификаторов
№ | Переменные | тип | Значения |
Gd | integer | Графический драйвер | |
Gm | integer | Графический режим |
Программа
Uses graph,crt;
Var gd, gm: integer;
Begin
gd: =0; gm: =0;
Initgraph (gd, gm,' ');
setcolor (5);
Line (100, 200,250, 200);
Line (250, 200, 209,150);
Arc (157,183, 61, 195, 60);
Setfillstyle (0,3);
Floodfill (256, 200,5);
Ellipse (200, 135, 75, 233, 15, 20);
Ellipse (200, 135, 303, 75, 15, 20);
Ellipse (208, 139, 303, 91, 15, 24);
setfillstyle (1,8);
floodfill (220,145,5);
Arc (120, 200, 180, 0,10);
Setfillstyle (1,1);
Floodfill (125, 202,5);
Arc (120, 200, 180, 0, 15);
Arc (130, 200, 260, 0, 15);
Arc (200, 200, 180, 0,10);
setfillstyle (1,1);
Floodfill (125, 202,5);
Arc (120, 200, 180, 0, 15);
Arc (130, 200, 260, 0, 15);
Arc (200, 200, 180, 0,10);
Setfillstyle (1,1);
Floodfill (200, 202,5);
Arc (200, 200, 180, 0, 15);
Arc (210, 200, 260, 0, 15);
Line (150, 90, 150, 124);
Line (155, 90, 155, 123);
Line (150, 90, 155, 90);
Setfillstyle (1,1);
Floodfill (153, 100,5);
Arc (144, 83, 41, 310,10);
Arc (158, 83, 259, 126,10);
Setfillstyle (1,1);
Floodfill (144, 83,5);
Circle (144, 83,5);
Setfillstyle (1,2);
Floodfill (144, 83,5);
Circle (158, 83,5);
Setfillstyle (1,2);
Floodfill (158, 83,5);
Circle (255, 200,5);
Setfillstyle (1,4);
Floodfill (255, 200,5);
Setfillstyle (1,8);
Floodfill (200, 150,5);
Circle (215, 177,7);
Setfillstyle (1,9);
Floodfill (215, 177,5);
Setfillstyle (1, 14);
floodfill (121, 200,5);
readkey;
closegraph;
end.
Решение задачи
Постановка задачи
Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения суммы n первых членов прогрессии.
Таблица идентификаторов
№ | Переменные | Тип | Значение |
Sn | Real | Сумма n первых членов арифметической прогрессии | |
n | integer | Количество членов арифметической прогрессии | |
A1,A2 | Real | Первый и второй члены арифметической прогрессии | |
d | Real | Разность прогрессии |
Блок-схема
![]() | ![]() | ||
Программа
Program recursiy;
var A1,d,A2,Sn: real; n: integer;
function prog (n: integer): integer;
begin
if n=1 then prog: =A1 else prog: =A1+d* (n-1) +prog (n-1);
end;
begin
Writeln ('введите n');
readln (n);
writeln ('введите первый и 2-ой член арифметической прогрессии');
readln (A1, A2);
d: =A2-A1;
Sn: =prog (n);
writeln (Sn);
readln;
end.
Результат работы программы
Решение задачи
Постановка задачи
Дан двумерный массив. Удалить среднюю строку (строки).
Таблица идентификаторов
№ | Переменные | Тип | Значение |
a | array | заполнение двумерного массива | |
i, j | integer | Параметры цикла | |
n, m | integer | Размерность массива | |
k | integer | Количество элементов до среднего |
3.6.3 Блок-схема
Программа
Var a: array [1..100,1..100] of integer;
i,j,m,n,k: integer;
begin
writeln ('Введите разм. мас');
readln (n,m);
randomize;
for i: =1 to n do
begin
for j: =1 to m do
begin
a [i,j]: =random (100);
write (a [i,j]: 3);
end;
writeln;
end;
writeln ('После удаления');
if n mod 2<>0 then begin k: =n div 2+1;
For i: =k to n-1 do
for j: =1 to m do
a [i,j]: =a [i+1,j];
for i: =1 to n-1 do
begin
for j: =1 to m do
write (a [i,j]: 3);
writeln;
end;
end
else
if n mod 2=0 then begin k: =n div 2;
For i: =k to n-2 do
for j: =1 to m do
a [i,j]: =a [i+2,j];
for i: =1 to n-2 do
begin
for j: =1 to m do
write (a [i,j]: 3);
writeln;
end; end;
readln;
end.