|
Решение : var E, M, V: real; begin writeln('введите массу в кг'); readln (M) Подборка методических материалов, представленных системой задач и методикой их решения средствами языка программирования Pascal, которая была создана силами обучающихся группы профессиональной переподготовки "Теория и методика преподавания предмета "Информатика и ИКТ" в рамках курса "Теория алгоритмов и программирование".
Простая
| Сложная
| Линейный алгоритм
| №1. Вычислить кинетическую энергию тела массой m, движущегося со скоростью v.
2
[E=]
Решение:
var E, M, V: real;
begin
writeln('введите массу в кг');
readln (M);
writeln('введите среднюю скорость в м/с');
readln (V);
E:=M*V*V/2;
writeln (E,' Джоуль');
end.
| №1 Вычислить площадь и периметр прямоугольника по двум известным сторонам.
[s=ab; p=2(a+b)]
Решение:
var a,b: integer;
s,p: integer;
begin
write ('длина прямоугольника ' );
read (a);
write ('ширина прямоугольника ');
read (b);
s:=a*b;
p:=2*(a+b);
writeln (' периметр треугольника = ' , p) ;
writeln (' площадь треугольника = ' , s) ;
end.
| Условный выбор
| №2. Дано натуральное число. Если заданное число четное, вывести чётное число, иначе – нечётное.
Решение:
var a: integer;
res: boolean;
begin
writeln('введите число');
readln(a);
if a mod 2 = 0 then begin
writeln ('чётное число') end else begin
writeln ('нечётное число') end;
end.
| №2. Написать программу, которая определит, в какой четверти находится точка с координатами (X,Y).
Решение:
var x,y: integer;
begin
write('задайте координату х=');
readln(x);
write('задайте координату у=');
readln(y);
if (x>0) and (y>0) then begin
writeln('точка находится в I четверти');
end;
if (x<0) and (y>0) then begin
writeln ('точка находится в II четверти');
end;
if (x<0) and (y<0) then begin
writeln('точка находится в III четверти');
end;
if (x>0) and (y<0) then begin
writeln('точка находится в IV четверти');
end;
if ((x=0)and(y=0)) then begin
writeln('точка находится в начале координат');
end else begin
if ((x=0) or (y=0)) then begin
writeln('точка находится на координатных осях');
end;
end;
end.
| Цикл с параметром
| №3. Вывести на экран квадраты целых чисел из диапазона -5…5.
Решение:
var a,b: integer;
begin
for a:=-5 to 5 do begin
b:=a*a;
writeln (a, ' в квадрате равно = ' ,b);
end;
end.
| №3. Напишите программу, чтобы она выводила на экран звёздочки
Решение:
var i,j,n: integer;
begin
readln(n);
for i:=1 to n do begin
for j:=1 to n do begin
write (' ** ');
end;
writeln;
end;
end.
| Цикл с условием
| №4. Составить программу подсчёта количества цифр натурального числа,
введённого с клавиатуры, используя цикл while.
Решение:
var n, i: integer;
begin
write ( 'Введите натуральное число: ' );
readln ( n );
i:= 0;
while n > 0 do begin
n:= n div 10;
i:= i + 1
end;
writeln ( 'Цифр в числе: ', i );
end.
| №4.Ученик 5 класса взял книгу в библиотеке объёмом 210 страниц. За сколько дней он прочитает книгу, если в день он будет читать по 15 страниц.
Решение:
var Sn, Sk, S, P: integer;
Nd: integer;
begin
Sn:=0; Sk:=210; p:=15; Nd:=0;
S:=Sn;
while Sdo begin
Nd:= Nd+1;
S:=S+p;
end;
writeln (' за ', Nd,' дней ');
end.
| Компьютерная графика
| №5. Нарисовать спортивный снаряд для силовых упражнений: гантель.
Решение:
Program gant;
uses GraphABC;
Begin
Pen.Color:=ClRed;
Pen.Width:=5;
brush.Color:=clRed;
FillRectangle (200,185,400,215);
circle (180,200,50);
FloodFill (180,200,clred);
circle (420,200,50);
FloodFill (420,200,clred);
End.
| №5. Нарисовать несколько одинаковых домиков.
Решение:
uses graphabc;
var i, n: integer;
procedure home(x, y: integer);
begin
brush. Color:=clBlue;
pen.color:=clGreen;
Rectangle(x,y,x+100,y+100);
pen.color:=clGray;
brush. Color:=clBlue;
Line(x,y,x+50,y-50);
Line(x+50,y-50,x+100,y);
end;
begin
writeln ('Введите количество домов');
readln(n);
writeln (n);
for i:=1 to n do
begin
home(10+120*(i-1), 100);
end;
end.
| Вспомогательный алгоритм
|
№6.Составьте программу, при помощи которой можно вычислить значения данной функции при х=1;
2
Y=.
Решение:
function fy (x: real):real;
begin
fy:=(2*sqr(cos(x))/sin(x));
end;
var x1, x2, y: real;
begin
x1:=1;
writeln (fy(x1));
x2:=pi/4;
writeln (fy(x2));
end.
| №6. Найти площадь полов каждого кабинета, для того чтобы в дальнейшем можно было приобрести линолеум в кабинеты.
Решение:
procedure s (a,b: integer); var c : integer;
begin
// задаем процедуру, которая считает произведение длин стен кабинета
c:=a*b;
writeln(a,'м * ', b, ' м = ', c , ' м2 ');
end;
var c, x, y, i, n: integer;
BEGIN
writeln ('введите количество кабинетов');
readln(n);
for i:= 1 to n do begin
writeln ('введите длины стен кабинета');
readln(x,y);
s (x,y);
end;
END.
| Линейный массив
| №7.Заполнить массив следующими значениями 3, 9, 27,81, …
Решение:
const n=7;
var a: array [1..n] of real;
i: integer;
begin
for i:=1 to n do begin
a[i]:= round(power(3,i));
end;
writeln;
for i:=1 to n do begin
writeln (i, '-й элемент = ',[i]);
end;
end.
| №7. Имеется массив M из n произвольных целых чисел. Напечатать, те числа из массива, которые больше предыдущего числа.
Решение:
const n=20;
var M: array[1..n] of integer;
i: integer;
begin
write('наш исходный массив: ');
randomize;
for i:=1 to n do begin
M[i]:=random(100);
write(M[i]:4); end;
writeln;
write('выводимые числа: ');
for i:=1 to n-1 do
if M[i]then write(M[i+1]:4);
end.
| Операции со строками
| №8. Подсчитать, сколько из введённой с клавиатуры строке, букв «с»
Решение:
var k: string; i,counte: integer;
BEGIN
write('Введите строку: '); readln(k);
counte := 0;
for i := 1 to length(k) do begin
if k[i] = 'с' then begin
counte := counte + 1;
end;
end;
writeln(counte,' букв с');
END.
| №8. Ввести несколько строк (в нашем случае 3) и найти максимальную по длине строку.
Решение:
const n = 3;
var
Ks: array[1..n] of string;
i,isd: byte;
begin
for i:=1 to n do
readln(Ks[i]);
isd:=1;
for i:=2 to n do
if length(Ks[i]) > length(Ks[isd]) then
isd := i;
writeln('самая длинная строка: ',Ks[isd]);
readln;
end.
uses graphabc;
var i, n: integer;
procedure home(x, y: integer);
begin
pen.color:=clRed;
Rectangle(x,y,x+100,y+100);
pen.color:=clGreen;
Line(x,y,x+50,y-50);
Line(x+50,y-50,x+100,y);
end;
begin
writeln ('Введите количество домов');
readln(n);
writeln (n);
for i:=1 to n do
begin
home(10+120*(i-1), 100);
end;
end.
| Матрицы
| №9.Найти в матрице элемент с максимальным значением и обнулить его.
Решение:
const n = 5; m = 5;
var a: array [1..n,1..m] of integer;
x,y,xm,ym: integer;
BEGIN
randomize;
//Заполнение матрица случайными числами
for y := 1 to m do begin
for x := 1 to n do begin
a[x,y] := random(100);
end;
end;
//Вывод матрица
for y := 1 to m do begin
for x := 1 to n do begin
write(a[x,y]:3);
end;
writeln;
end;
//Поиск максимального элемента
xm := 1; ym := 1;
for y := 1 to m do begin
for x := 1 to n do begin
if a[x,y] > a[xm,ym] then begin
xm := x; ym := y;
end;
end;
end;
//Вывод всех максимальных элементов
for y := 1 to m do begin
for x := 1 to n do begin
if a[x,y] = a[xm,ym] then begin
writeln(y,' строка,',x,' столбец');
end;
end;
end;
//Обнуление максимального элемента
a[xm,ym]:=0;
//Вывод матрица
for y := 1 to m do begin
for x := 1 to n do begin
write(a[x,y]:3);
end;
writeln;
end;
END.
| №9. Найти сумму минимального и максимального элементов матрицы.
Решение:
const n = 3; m = 3;
var a: array [1..n,1..m] of integer;
x,y,xmax,ymax,xmin,ymin,s: integer;
BEGIN
randomize;
//Заполнение матрица случайными числами
for y := 1 to m do begin
for x := 1 to n do begin
a[x,y] := random(100);
end;
end;
//Вывод матрица
for y := 1 to m do begin
for x := 1 to n do begin
write(a[x,y]:3);
end;
writeln;
end;
//Поиск минимального элемента
xmin := 1; ymin := 1;
for y := 1 to m do begin
for x := 1 to n do begin
if a[x,y] < a[xmin,ymin] then begin
xmin := x; ymin := y;
end;
end;
end;
//Поиск максимального элемента
xmax := 1; ymax := 1;
for y := 1 to m do begin
for x := 1 to n do begin
if a[x,y] > a[xmax,ymax] then begin
xmax := x; ymax := y;
end;
end;
end;
//Вывод всех минимального элементов
for y := 1 to m do begin
for x := 1 to n do begin
if a[x,y] = a[xmin,ymin] then begin
writeln(y,' строка,',x,' столбец');
end;
end;
end;
//Вывод всех максимальных элементов
for y := 1 to m do begin
for x := 1 to n do begin
if a[x,y] = a[xmax,ymax] then begin
writeln(y,' строка,',x,' столбец');
end;
end;
end;
//Сумма мах и мин элементов матрицы
s:= a[xmax,ymax]+a[xmin,ymin];
writeln ('сумма = ',s );
END.
| |
|
|