Главная страница


Решение : var E, M, V: real; begin writeln('введите массу в кг'); readln (M)



Скачать 181.29 Kb.
НазваниеРешение : var E, M, V: real; begin writeln('введите массу в кг'); readln (M)
Дата24.02.2016
Размер181.29 Kb.
ТипРешение

Подборка методических материалов, представленных системой задач и методикой их решения средствами языка программирования 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.