Дополнительное задание 2 Параграф 20 ГДЗ Семакин 8 класс (Информатика)
Практическое задание №20
Тема: Знакомство с языком Паскаль
1 уровень сложности
1. а) Набрать в редакторе системы Турбо-Паскаль следующую программу:
Program my;
Var a,b,c,s:integer;
Begin
ReadLn(a);
ReadLn(b);
ReadLn(c);
S:=a*b*c;
WriteLn(S)
End.
б) Откомпилировать набранную программу и исправить ошибки.
в) Запустить данную программу на выполнение и проверить правильность её работы для чисел 2, 4 и 6.
г) Запустить данную программу на выполнение и проверить правильность её работы для чисел 1, 0 и -1.
д) Запустить данную программу на выполнение и проверить правильность её работы для чисел -2, 3 и 10.
2. Написать программу, которая присваивает целой переменной A значение 10 и выводит это значение на экран.
3. Написать программу, которая запрашивает ввод целого числа в переменную B и выводит это число на экран. Проверить правильность работы программы на числах 1, -5, 256, 10455.
4. Написать программу, которая запрашивает ввод вещественного числа в переменную C, умножает это число на 2 и выводит результат на экран. Проверить правильность работы программы на числах 2.5, -7.33, 0, 782.234.
5. Написать программу для ввода значения величины X целого типа, присваивания величине Y действительного типа значения 5.5, вычисления значения величины Z = X — Y и вывода значения величины Z. Протестировать программу для X=5.5, X=0, X=-10.2
6. Написать программу для ввода значения величины X целого типа, присваивания величине Y действительного типа значения 2.5 , вычисления значения величины Z=X/Y и вывода значения величины Z. Протестировать программу для X=5, X=0, X=-8.75
1.
program my;
var
a, b, c, s: integer;
begin
ReadLn(a);
ReadLn(b);
ReadLn(c);
S := a * b * c;
WriteLn(S)
end.
2.
program my;
var
a: integer;
begin
a := 10;
WriteLn(a)
end.
3.
program my;
var
b: integer;
begin
write(‘b > > ‘);
readln(b);
WriteLn(b)
end.
4.
program my;
var
c: real;
begin
write(‘c > > ‘);
readln(c);
c := 2 * c;
WriteLn(c)
end.
5.
program my;
var
x: integer;
y, z: real;
begin
write(‘x > > ‘);
readln(x);
y := 5.5;
z := x — y;
WriteLn(z)
end.
6.
program my;
var
x: integer;
y, z: real;
begin
write(‘x > > ‘);
readln(x);
y := 2.5;
z := x / y;
WriteLn(z:5:2)
end.
2 уровень сложности
1. Написать на языке Паскаль программу ввода четырёх целых чисел и вычисления их среднего арифметического. Протестировать программу на различных исходных данных (включая вещественные числа) и доказать правильность её работы.
2. Вводятся величины X,Y целого типа. Написать программу для обмена значений величин. Необходимо использовать вспомогательную величину Т. Протестировать программу для X=5 и Y=-11.
3. Написать программу для вычисления дискриминанта d квадратного уравнения ax2 + bx + c = 0. Разработать тесты проверки правильности работы программы для вариантов, когда d > 0, d=0 и d < 0.
4. Из железной полосы длиной L метров нужно изготовить обруч. На соединение концов уходит D метров полосы. Написать программу для вычисления радиуса R обруча. Протестировать программу для а) L=5.8, D=0.2, б) L=3.25, D=0.1
5. Найти площадь кольца, внешний радиус которого равен R1, а внутренний – R2 (R1 > R2). Протестировать программу для R1=5.6 и R2=3.8. Проверить ответ на калькуляторе.
6. Написать на языке Паскаль программу для вычисления выражения:
S= (2x+y)(x-y)
Протестировать её для следующих исходных данных:
1) x=2, y=1 2) x=3, y=0 3) x=0, y=-2
1.
program my;
var
a, b, c, d: integer;
sr: real;
begin
write(‘a,b,c,d > > ‘);
readln(a, b, c, d);
sr := (a + b + c + d) / 4;
writeln(sr:5:2)
end.
2.
program my;
var
x, y, t: integer;
begin
write(‘x,y > > ‘);
readln(x, y);
t := x;
x := y; y := t;
writeln(‘x=’, x, ‘ y=’, y)
end.
3.
program my;
var
a, b, c, d: integer;
begin
write(‘a,b,c > > ‘);
readln(a, b, c);
d := b * b — 4 * a * c;
writeln(‘d=’, d)
end.
4.
program my;
var
l, d, r: real;
begin
write(‘l,d > > ‘);
readln(l, d);
l := l — d;
r := l / (3.14 * 2);
writeln(‘r=’, r:5:2)
end.
5.
program my;
var
r1, r2, s: real;
begin
write(‘r1,r2 > > ‘);
readln(r1, r2);
s := 3.14 * (r1 * r1 — r2 * r2);
writeln(‘s=’, s:5:2)
end.
6.
program my;
var
x, y, s: integer;
begin
write(‘x,y > > ‘);
readln(x, y);
s := (2 * x + y) * (x — y);
writeln(‘s=’, s)
end.
3 уровень сложности
1. Заданы величины X,Y действительного типа. Написать программу для обмена значений величин. Использовать вспомогательные величины нельзя. Протестировать программу для X=-3 и Y=8.
2. Дано натуральное число Х. Вычислить Y = X5. Разрешается использовать только три операции умножения. Протестировать программу для X=-2 и X=3.
3. Дано натуральное число Х. Вычислить Y = 1 — 2X + 3X2 — 4X3. Разрешается использовать не более 8 арифметических операций. Допустимы: операции сложение, вычитание, умножение. Протестировать программу для X=0, X=1, X=-2.
4. Вычислить расстояние между двумя точками с координатами (X1,Y1) и (X2,Y2). Доказать правильность работы программы на трёх различных тестах.
1.
program my;
var
x, y: real;
begin
write(‘x,y > > ‘);
readln(x, y);
x := x + y;
y := x — y;
x := x — y;
writeln(‘x=’, x, ‘ y=’, y)
end.
2.
program my;
var
x, y: integer;
begin
write(‘x > > ‘);
readln(x);
y := x * x;
y := y * y * x;
writeln(‘y=’, y)
end.
3.
y=1-x*(2-3*x+4*x2)
program my;
var
x, y: integer;
begin
write(‘x > > ‘);
readln(x);
y := 2-3* x;
y := y+4*x*x;
y:=y*x;
y:=1-y;
writeln(‘y=’, y)
end.
4.
program my;
var
x1, y1, x2, y2: integer;
l: real;
begin
write(‘x1,y1,x2,y2 > > ‘);
readln(x1, y1, x2, y2);
l := sqrt(sqr(x1 — x2) + sqr(y1 — y2));
writeln(‘l=’, l:5:2)
end.
1. Программа для вычисления произведения трёх чисел:
program my;
var
a, b, c, s: integer;
begin
ReadLn(a);
ReadLn(b);
ReadLn(c);
s := a * b * c;
WriteLn(s);
end.
Проверка:
- $$2 \cdot 4 \cdot 6 = 48$$
- $$1 \cdot 0 \cdot (-1) = 0$$
- $$(-2) \cdot 3 \cdot 10 = -60$$
2. Программа, присваивающая переменной $$A$$ значение $$10$$ и выводящая его:
program my;
var
a: integer;
begin
a := 10;
WriteLn(a);
end.
3. Программа ввода целого числа и вывода его на экран:
program my;
var
b: integer;
begin
write(‘b>>’);
readln(b);
WriteLn(b);
end.
При вводе $$1$$, $$-5$$, $$256$$, $$10455$$ программа выводит то же самое число.
4. Программа для ввода вещественного числа, умножения его на $$2$$ и вывода результата:
program my;
var
c: real;
begin
write(‘c>>’);
readln(c);
c := 2 * c;
WriteLn(c);
end.
Проверка:
- $$2.5 \cdot 2 = 5$$
- $$-7.33 \cdot 2 = -14.66$$
- $$0 \cdot 2 = 0$$
- $$782.234 \cdot 2 = 1564.468$$
5. Программа для вычисления $$Z = X — Y$$, где $$Y = 5.5$$:
program my;
var
x: integer;
y, z: real;
begin
write(‘x>>’);
readln(x);
y := 5.5;
z := x — y;
WriteLn(z);
end.
Так как $$X$$ объявлена как целая переменная, значения $$5.5$$ и $$-10.2$$ вводить нельзя. Для допустимых целых значений, например:
- $$X = 5 \Rightarrow Z = 5 — 5.5 = -0.5$$
- $$X = 0 \Rightarrow Z = 0 — 5.5 = -5.5$$
6. Программа для вычисления $$Z = \dfrac{X}{Y}$$, где $$Y = 2.5$$:
program my;
var
x: integer;
y, z: real;
begin
write(‘x>>’);
readln(x);
y := 2.5;
z := x / y;
WriteLn(z:5:2);
end.
Проверка:
- $$5 / 2.5 = 2$$
- $$0 / 2.5 = 0$$
- $$-8.75$$ вводить нельзя, так как $$X$$ — целая переменная.
Ответ
Приведены программы для всех пунктов и результаты проверки на тестовых данных.