ОГЛАВЛЕНИЕ
Лабораторная работа № 1. Линейные алгоритмы. 3
Лабораторная работа № 2. Разветвляющиеся алгоритмы. 4
Лабораторная работа № 3. Циклы. 4
Лабораторная работа № 4. Одномерные массивы. 4
Лабораторная работа № 5. Двумерные массивы. 4
Лабораторная работа № 6. Множества 4
Лабораторная работа № 7. Строки. 4
Лабораторная работа № 8. Файлы. 4
Лабораторная работа № 9. Записи. 4
Лабораторная работа № 10. Подпрограммы. 4
Библиографический список. 4
Лабораторная работа № 1. Линейные алгоритмы
Задание 1. Запустите среду программирования Pascal и наберите следующий код программы:
Var R, S, L: real;
Begin
Write('R=');
Readln(R);
S:= pi*sqr(R);
L:=2*pi*R;
Write('S=', S);
Write('L=',L);
Readln;
End.
Определите, что вычисляется в программе. (определяеться площадь окр)
Исправьте ошибки в коде программы.
Задание 2. Определите, что появится на экране после выполнения команд:
a) x:=10;
y:=3;
z:=x/y;
Writeln(x, ’:’, y,’=’, z:3:1);
Значение зэт = 3.3
b) x:= 9 mod 2;
y:= 9 div 2;
Writeln (‘Целая часть от деления 9 на 2 равна’, y);
Writeln (‘Остаток от деления 9 на 2 равен’, x);
Целая часть от деления 9 на 2 равна 4
Остаток от деления 9 на 2 равен 1
Задание3. Установите правильный порядок команд в программе, вычисляющей объем параллелепипеда.
□ Begin
□ V:=a*b*h;
□ Program Example1;
□ Uses Crt;
□ end.
□ Writeln(‘V=’,V:5:2);
□ Var h, a, b: integer;
V: real;
□ Write(‘a=’); Readln(a);
Write(‘b=’); Readln(b);
Write(‘h=’); Readln(h);
□ Writeln (‘Вычислениеобъемапараллелепипеда’);
Program Example1;
Uses Crt;
Var h, a, b: integer;
V: real;
Begin
Write(‘a=’); Readln(a);
Write(‘b=’); Readln(b);
Write(‘h=’); Readln(h);
V:=a*b*h;
Writeln (‘Вычисление объема параллелепипеда’);
Writeln(‘V=’,V:5:2);
end.
Задание 4. Составьте программу по заданной блок-схеме.
Рис. 1. Линейный алгоритм
Задание 5. Запишите следующие математические выражения на языке Pascal:
a) y = 2x2 + ex;y:=2*x*x+exp(x)
b) z = |tg(5x) – 2x|; y:= abs((sin(5*x)/cos(5*x))-2*x)
c) a = b10; a:=exp(10*ln(b))
d) y = log5 (3x-2); y:=ln(3*x-2)/ln(5)
e) y = . y:=sqrt(5*x)
Задание6. Составьте программу для вычисления выражения
у=10log2(x2+2).
var x,y:real;
Begin
write('x=');
readln(x);
y:=10*(ln(x*x+2)/ln(2));
writeln('y=',y);
readln(y);
end.
Задание 7. Составьте программу для вычисления синуса угла, заданного в градусах.
var x,z,h:real;
Begin
write('x=(v gradusah)');
readln(x);
z:=(x*pi)/180;
h:=sin(z);
writeln('sinys raven =',h);
readln(h);
end.
Задание 8. Составьте программу, которая переводит величину, заданную в минутах в величину, выраженную в часах и минутах.
Например, 255 мин. = 4 ч. 15 мин.
var x,y,z,h:integer;
Begin
write('x=');
readln(x);
z:=x mod 60;
h:=x div 60;
writeln('время записанное в часах будет - ',h,'ч.',z,'минут');
readln(y);
end.
Лабораторная работа № 2. Разветвляющиеся алгоритмы
Задание 1. Составьте блок-схему к следующей программе:
Program Example2;
Uses Crt;
Var x, y: integer;
Begin
Clrscr;
Writeln (‘Введитечисло’);
Readln(x);
y:= x mod 2;
if y=0 then writeln(‘ число ’, х, ’ – четное’ )
elsewriteln(‘ число’, х, ’ – нечетное’ );
End.
Задание 2. Установите правильный порядок выполнения команд в программе.
□ 1) ProgramExample3;
□ 5) Writeln (‘Введитедвачисла’);
□ 3) UsesCrt;
□ 6) Readln(a, b);
□ 7) if a = b then Writeln(a, ‘=’, b) else Writeln(a, ‘<’, b);
□ 2) Var a, b: integer;
□ 8) if a > b then Writeln(a, ‘>’, b) else
□ 4) Begin
□ 9) End.
Задание 3. В алгоритме для вычисления значения функции y заполните пустые места.
,
Рис. 2. Алгоритм вычисления значения функции
Задание 4. Разработайте программу для вычисления значения функции
var x,y:real;
Begin
writeln('Введите x: ');
readln(x);
if x < -1 then
y:=-ln(x)+5
Else
if x >1 then
y:=ln(x)
Else
y:=x*x-1;
writeln(y);
readln;
end.
Задание 5. Составьте программу по заданной блок-схеме.
Рис. 3. Разветвляющийся алгоритм
Доработайте программу, чтобы в ней вычислялась площадь треугольника по формуле Герона (,
).
program zadacha;
var a,b,c,p,s:real;
Begin
writeln('введите a');
readln(a);
writeln('введите b');
readln(b);
writeln('введите c');
readln(c);
if (a+b>c) and (b+c>a) and (a+c>b) and (a>0) and (b>0) and (c>0) then
Begin
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('s= ',s:3:2)
End
Else
writeln('со сторонами a b c нельзя составить треугольник');
readln
end.
Задание 6. Укажите правильный порядок команд в программе.
□ 1 ProgramExample4;
□ 2 Uses Crt;
□ 6 Readln(x);
□ 9 elsewriteln (‘такой операции не существует’);
□ 8 End;
□ 10 End.
□ 7 Case x of
‘+’: writeln (‘сложение’);
‘-‘: writeln (‘вычитание’);
‘*’: writeln (‘умножение’);
‘/’: writeln (‘деление’)
□ 3 Varx: char;
□ 4 Begin
□ 5 Writeln (‘Введите символарифметическойоперации’);
Лабораторная работа № 3. Циклы
Задание 1. Определите, что вычисляется в алгоритме. Составьте программу по данной блок-схеме.
Рис. 4. Цикл с параметром
Задание 2. Составьте программу для вычисления суммы ряда
1 + 1/3 + 1/5 + 1/7 + …
Задание 3. Составьте программу для вычисления факториала
(n! = 1·2·3·…· n).
Задание 4. Составьте программу, которая выводит на экран таблицу степеней двойки от 0 до 10.
Задание 5. Составьте программу, которая выводит на экран таблицу степеней для произвольного числа.
Задание 6. Определите, что вычисляется в программе.
Program Example5;
Uses Crt;
Var n, m: integer;
Begin
Clrscr;
Writeln ('Введитедвачисла');
Readln (n, m);
While m<>n do
Begin
if m > n then m:=m-n else n:=n-m;
End;
Writeln (m);
End.
Задание 7. Определите, что вычисляется в программе, и составьте к ней блок-схему.
Program Example6;
Uses Crt;
Var x, y: real;
Begin
Clrscr;
x:= 1;
While x <= 10 do
Begin
y:= sqr(x) + 1;
Writeln(x:5:1, y:10:1);
x:= x+0.5;
End;
End.
Задание 8. Составьте программу, которая выводит таблицу значений функции y = 2 x 2 + 3 x – 9 в диапазоне от – 3 до 3 с шагом 0,5.
Рекомендуемый вид экрана:
---------------
Х | У
---------------
– 3 | 0
– 2,5 | – 4
– 2 | – 7
… | …
3 | 18
---------------
Доработайте программу, чтобы диапазон и шаг можно было вводить при запуске программы.
Задание 9. Составьте программу, в которой необходимо отгадать зашифрованное слово (например, КОБЯЛО). Пользователь вводит ответ до тех пор, пока не отгадает слово из этих букв. Как только введено правильное слово, программа завершается, и на экран выводится сообщение «Вы угадали с N попытки!».
Задание 10. Составьте программу, которая находит все простые числа в диапазоне от A до B.
Задание 11. Составьте программу, которая находит все совершенные числа в диапазоне от A до B.
Лабораторная работа № 4. Одномерные массивы
Задание 1. В алгоритме вычисления суммы и количества положительных элементов заполните пустые места.
Рис. 5. Одномерный массив
Задание 2. Составьте блок-схему к следующей программе:
Program Example7;
Uses crt;
Var a: array[1..100] of integer;
i, n, max: integer;
Begin
Clrscr;
Write('n=');
Readln(n);
for i:=1 to n do Begin
Write('a[',i,']=');
Readln(a[i]);
End;
max:=a[1];
for i:=2 to n do if a[i]>max then max:=a[i];
Writeln('max=',max);
End.
Задание 3. Составьте программу, которая находит максимальный и минимальный элементы в одномерном массиве и их порядковые номера.
Задание 4. Составьте программу, в которой меняются местами максимальный и минимальный элементы.
Задание 5. Установите правильный порядок команд в программе, и определите, что в ней вычисляется.
□ Var a, b:array[1..100] of integer;
i, n, k: integer;
□ for i:=1 to n do
if a[i] < 0 then Begin
k:= k+1;
b[k]:= i;
End;
□ Readkey
□ End.
□ for i:= 1 to k do Write(b[i]:4);
□ Uses crt;
□ for i:= 1 to n do Begin
Write('a[', i, ']=');
Readln(a[i]);
End;
□ Program Example8;
□ Begin
□ Write('n=');
□ Readln(n);
k:= 0;
Задание 6. Определите, что выполняется в программе.
Program Example9;
Uses crt;
Var a: array[1..100] of integer;
i, j, n, m:integer;
Begin
Clrscr;
Write('n='); Readln(n);
for i:= 1 to n do Begin
Write('a[', i, ']=');
Readln(a[i]);
End;
for j:= 1 to n-1 do
for i:= 1 to n-j do Begin
if a[i] < a[i+1] then Begin
m:= a[i];
a[i]:= a[i+1];
a[i+1]:= m;
End;
End;
for i:= 1 to n do Write(a[i]:5);
End.
Задание 7. Составить программу, которая преобразует одномерный массив таким образом, чтобы сначала шли отрицательные, затем нулевые и положительные элементы.
Лабораторная работа № 5. Двумерные массивы
Задание 1. Заполните пустые места в алгоритме поиска минимального элемента в двумерном массиве.
Рис. 6. Двумерный массив
Задание2. Составьте блок-схему к программе, вычисляющей произведение элементов двумерного массива.
Var a: array[1..100, 1..100] of integer;
i, j, n, m: integer;
P: longint;
Begin
Write('n='); Readln(n);
Write('m='); Readln(m);
for i:= 1 to n do
for j:= 1 to m do Begin
Write('a[', i, j, ']=');
Readln(a[i, j]);
End;
Writeln('Матрица:');
For i:=1 to N do
Begin
For j:=1 to N do
Write(A[i,j]:5:0);
Writeln;
end;
Writeln;
P:= 1;
fori:=1 to n do
for j:= 1 to m do P:= P *a[i, j];
Write(‘P=’, P);
End.
Доработайте программу, чтобы на экран выводился массив в виде матрицы.
![]() |
Задание3. Составьте программу для поиска максимального элемента и его индексов.
Var a: array[1..100, 1..100] of integer;
i, j, n, m, max, c, b: integer;
Begin
Write('n=');
Readln(n);
Write('m=');
Readln(m);
for i:=1 to n do
for j:=1 to m do
Begin
Write('a[', i, j, ']=');;
Readln(a[i,j]);
End;
max:=a[1,1];
for i:=1to n do
for j:=1 to n do
begin
if a[i,j]>max then begin
max:=a[i,j];
c:=i;
b:=j;
end;
end;
Writeln('max=',max, ' егоиндексы: ', c, ',', b);
End.
Задание 4. Заполните пустые места в программе, вычисляющей сумму элементов, расположенных на главной диагонали.
Var a: array[1..100, 1..100] of integer;
i, j, n, m, S, F: integer;
Begin
Write('n='); Readln(n);
for i:=1 to n do
for j:=1 to n do
Write('a[', i, j,']=');
Readln(a[i, j]);
S:= 0;
for i:=1 to n do
for j:=1 to n do if then
for i:= 1 to n do
Begin
for j:= 1 to n do
Write(a[i, j]:5);
Writeln;
End;
Writeln('S=', S);
F:=0;
for i:=1 to n do
for j:=1 to n do if n+1-i=j then F:=F+a[i,j];
writeln('F=', F);
End.
Доработайте программу, чтобы считалась сумма элементов, расположенных на побочной диагонали.
Задание 5. Составьте программу для поиска максимального элемента на побочной диагонали. Для заполнения массива воспользуйтесь датчиком случайных чисел.
Vara: array[1..100, 1..100] ofinteger;
i, j, n, m, max, c, b: integer;
Begin
Write('n=');
Readln(n);
Write('m=');
Readln(m);
for i:=1 to n do
for j:=1 to m do
Begin
a[i,j]:=random(100);
write(a[i,j], ' ');
End;
writeln;
Writeln('Матрица:');
For i:=1 to n do
Begin
For j:=1 to m do
Write(A[i,j]:5);
Writeln;
end;
Writeln;
max:=a[1,1];
for i:=2 to n do
for j:=1 to m do
begin
ifi=j then begin
if a[i,j]>max then begin
max:=a[i,j];
c:=i;
b:=j;
end;
end;
end;
Writeln('max=',max, ' егоиндексы: ', c, ',', b);
End.
Задание 6. Составьте программу для поиска минимального элемента среди элементов, расположенных выше главной диагонали.
Var a: array[1..100, 1..100] of integer;
i, j, n, m, min, c, b: integer;
Begin
Write('n=');
Readln(n);
Write('m=');
Readln(m);
for i:=1 to n do
for j:=1 to m do
Begin
a[i,j]:=random(100);
write(a[i,j], ' ');
End;
writeln;
Writeln('Матрица:');
For i:=1 to n do
Begin
For j:=1 to m do
Write(A[i,j]:5);
Writeln;
end;
Writeln;
min:=a[1,1];
c:=1;
b:=1;
for i:=1to n do
for j:=1 to m do
begin
ifi<j then begin
if a[i,j]<min then begin
min:=a[i,j];
c:=i;
b:=j;
end;
end;
end;
Writeln('min=',min, ' егоиндексы: ', c, ',', b);
End.
Задание 7. Составьте программу, которая подсчитывает количество строк в двумерном массиве, содержащих отрицательные элементы.
Var a: array[1..100, 1..100] of integer;
i, j, n, m, c, S, q: integer;
Begin
Write('n=');
Readln(n);
Write('m=');
Readln(m);
for i:=1 to n do
for j:=1 to m do
Begin
a[i,j]:=random(100)-50;
write(a[i,j], ' ');
End;
writeln;
Writeln('матрица:');
For i:=1 to n do
Begin
For j:=1 to m do
Write(A[i,j]:5);
Writeln;
end;
Writeln;
S:=0;
For i:=1 to n do
begin
For j:=1 to m do begin
if a[i,j]<0 then c:=c+1;
end;
if c>0 then q:=q+1;
end;
writeln('q= ',q);
end.
Задание 8. Составьте программу, которая вычисляет сумму элементов по столбцам.
Var a: array[1..100, 1..100] of integer;
i, j, n, m, c, S: integer;
Begin
Write('n=');
Readln(n);
Write('m=');
Readln(m);
for i:=1 to n do
for j:=1 to m do
Begin
a[i,j]:=random(100)-50;
write(a[i,j], ' ');
End;
writeln;
Writeln('Матрица:');
For i:=1 to n do
Begin
For j:=1 to m do
Write(A[i,j]:5);
Writeln;
end;
Writeln;
S:=0;
For j:=1 to m do
begin
For i:=1 to n do begin
S:=S+a[i,j];
end;
writeln('Сумма ',j,'столбца = ',S);
S:=0;
end;
end.
Лабораторная работа № 6. Множества
Задание 1. Запишите результаты операций над множествами:
[1, 3,6, 7, 8] + [1, 2, 7, 9] | ||
[5, 6, 8, 9] * [3, 4, 5, 8, 10] | ||
[‘a’, ‘b’, ‘c’, ‘d’, ‘e’] – [‘b’, ‘d’, ‘f’, ‘g’] | ||
4 in [1, 2, 3, 4, 5] | ||
3 in [1, 2, 5, 7, 9] |
Задание 2. Правильный порядок команд в программе, объединяющей два множества:
□ Var M, N, L: set of byte;
□ N:= [1, 2, 3, 4, 8]; M:= [3, 4, 5, 6, 8];
□ End.
□ Program Example12;
□ L:= N + M;
□ Begin
□ Uses Crt;
Задание 3. Заполните пустые места в программе, определяющей количество цифр в тексте.
Program ABC;
Uses Crt;
Var G: char;
t: string;
i, n, m: byte;
Begin
Clrscr;
G:= ['0'.. '9'];
Writeln ('Введитетекст ');
Readln(t);
For i:= 1 to Length(t) do Begin
if then n:= n+1;
End;
Writeln(n);
Readkey;
End.
Задание 4. Составьтепрограмму, которая заполняет множество нечетными числами от 1 до n (n ≤ 255) и выводит эти числа на экран.
Задание 5. Составьте программу, которая заполняет множество простыми числами от 1 до n (n ≤ 255) и выводит эти числа на экран.
Лабораторная работа № 7. Строки
Задание 1. Заполните пустые места в программе, подсчитывающей количество букв «а» в строке.
Program Example12;
Var S: string;
i, k: integer;
Begin
Writeln ('Введитестроку');
Readln (S);
For i:= 1 to length(S) do
if then
Writeln ('Символ «а» встречается', k, ' раз');
End.
Задание 2. Укажите правильный порядок команд в программе, удаляющей из строки все буквы «о».
□ End. 9
□ Var S, T: string; 2
i: integer;
□ Begin 3
□ Program Example13; 1
□ if S[i] <>'о' then T:=T+S[i]; 7
□ Writeln (T); 8
□ T:=''; 5
□ For i:= 1 to length(S) do 6
□ Writeln ('Введитестроку'); Readln (S); 4
Задание 3. Составьте программу, в которой все буквы «а» заменяются на буквы «о».
Program Example13;
Var S: string;
i: integer;
Begin
Writeln ('Введитестроку'); Readln (S);
For i:= 1 to length(S) do
if S[i]='a' then
S[i]:='o';
Writeln (S);
end.
Задание 4. Определите, что выполняется в программе.
Program Example14;
Const X = ['0'.. '9'];
Var S, T: string;
i: integer;
Begin
Writeln ('Введитестроку');
Readln (S);
T:= ' ';
For i:= 1 to length(S) do
if not(S[i] in X) then T:= T+S[i];
Writeln(T);
Readln;
End.
Если в строке нет цыфр, вывод данной строки
Задание 5. Составьте программу, в которой из строки удаляются все символы, кроме цифр.
program Example14;
Const
X = ['0'.. '9'];
Var
S, T: string;
i: integer;
Begin
Writeln('Введитестроку');
Readln(S);
T:= ' ';
for i:= 1 to length(S) do
if (S[i] in X) then T:= T + S[i];
Writeln(T);
Readln;
end.
Задание 6. Составьте программу, в которой из строки удаляются последние три символа.
program Example14;
Const
X = ['0'.. '9'];
Var
S: string;
i: integer;
Begin
Writeln('Введитестроку');
Readln(S);
i:= Length(S);
Delete(S, i - 2, Length(S));
Writeln(S);
end.
Лабораторная работа № 8. Файлы
Задание 1. Определите, что выполняется в программе. В фигурных скобках укажите назначение команд.
Program Example15;
Uses crt;
Var f: text;
st: string;
Begin
Assign(f, 'C:\Example.txt'); { открытьфайл }
Rewrite(f); { запись в файл }
Writeln('Введитетекст ');
Read(st);
Write(f, st); { записываем в файл f строку st }
Close(f); { закрытьфайл }
End.
Программа записывает введенные нами строки в файл на диске.
Задание 2. Определите, что выполняется в программе и для чего предназначена команда Append?
Program Example16;
Uses crt;
Var f: text;
i, n, x: integer;
Begin
Assign(f, 'C:\Example.txt');
Append(f); { открыть файл и добавить для добавления в него записи }
Writeln ('Введите количество чисел');
Readln(n);
Writeln ('Введитечисла');
for i:= 1 to n do Begin
Readln(x);
Write(f, x:4);
End;
Close(f);
End.
Задание 3. Определите, что выполняется в программе. В фигурных скобках запишите назначение команд.
Program Example17;
Uses crt;
Var f: text;
st: string;
Begin
Clrscr;
Assign(f, 'C:\Example.txt');
Reset(f); {открыть файл для чтения}
WhilenotEOF(f) do {поканеконецфайла f}
Begin
Readln(f, st); {читать строку из файла f}
Writeln(st); {вывод на экран}
End;
Close(f);
Readln
End.
Задание 4. Разработайте программу, которая создает файл date.txt и записывает в него n случайных чисел в диапазоне от 5 до 30.
Var f: text;
n,i:integer;
a: array [1..100] of integer;
Begin
Assign(f, 'D:\date.txt');
Rewrite(f);
write('введите n= ');
readln(n);
for i:= 1 to n do
begin a[i]:= 5+random(26);
Write(f, a[i]);
end;
Close(f);
Задание 5. Разработайте программу, которая считывает информацию из файла date.txt, находит максимальное число и общую сумму. Результат запишите в файл result.txt.
Var f,f2: text;
n,n1,max,sum:integer;
Begin
sum:=0;
Assign(f, 'C:\PABCWork.NET\date.txt');
Reset(f);
assign(f2, 'C:\PABCWork.NET\results.txt');
rewrite(f2);
for n:= 5 to 30 do
sum:=sum+n;
max:=n1;
if max<n then max:=n;
write('sum=', sum,' max=', max);
Write(f2, max, sum);
Close(f);
close(f2);
End.
Лабораторная работа № 9. Записи
Задание 1. Наберите текст программы и познакомьтесь с типом данных Record. Определите, чтовыполняетсявпрограмме.
Program Example18;
Type STR= Record
Fam: string;
B1, B2, B3, B4, B5: 2..5;
SB: real;
End;
VarTbl: array[1..50] of str;
i,n: integer;
Begin
Write('n=');
Readln(n);
For i:=1 to n do
Begin
Write('FIO:'); Readln (Tbl[i].FAM);
Write('Ozenki: ');Readln(Tbl[i].B1, Tbl[i].B2,Tbl[i].B3, Tbl[i].B4, Tbl[i].B5);
End;
Writeln('Sredniy ball');
For i:=1 to n do
Begin
Tbl[i].SB:=(Tbl[i].B1+Tbl[i].B2+Tbl[i].B3+ Tbl[i].B4+Tbl[i].B5)/5;
Writeln(Tbl[i].FAM,' – ', Tbl[i].SB:5:2);
End;
End.
СЧИТАЕТ СРЕДНИЙ БАЛЛ СТУДЕНТОВ
В программе содержится много повторяющихся данных. Для её упрощения воспользуйтесь оператором присоединения With.
Type
STR = Record
Fam: string;
B1, B2, B3, B4, B5: 2..5;
SB: real;
End;
Var
Tbl: array [1..50] of str;
i, n: integer;
Begin
Write('n=');
Readln(n);
for i:= 1 to n do
with Tbl[i] do
Begin
Write('FIO:'); Readln(FAM);
Write('Ozenki: ');
Readln(B1, B2, B3, B4, B5);
end;
Writeln('Sredniy ball');
for i:= 1 to n do
Begin
with Tbl[i] do
Begin
SB:= (B1 + B2 + B3 + B4 + B5) / 5;
Writeln(FAM, ' – ', SB:5:2);
end;
end;
end.
Задание 2. Доработайте программу, чтобы данные о студентах и их средние баллызаписывались в файл.
Type
STR = Record
Fam: string;
B1, B2, B3, B4, B5: 2..5;
SB: real;
End;
Var
Tbl: array [1..50] of str;
i, n: integer;
k: text;
Begin
assign(k, 'D:\sredniy ball.txt');
rewrite(k);
Write('n=');
Readln(n);
for i:= 1 to n do
with Tbl[i] do
Begin
Write('FIO:'); Readln(FAM);
Write('Ozenki: ');
Readln(B1, B2, B3, B4, B5);
end;
Writeln('Sredniy ball');
for i:= 1 to n do
Begin
with Tbl[i] do
Begin
SB:= (B1 + B2 + B3 + B4 + B5) / 5;
writeln(FAM, ' – ', SB:5:2);
Write(k, FAM, ' – ', SB:5:2);
end;
end;
close(k);
end.
Лабораторнаяработа № 10. Подпрограммы
Задание 1. Исправьте ошибки в программе.
Function V(R, H: real): real;
Begin
V:= pi*sqr(R)*H;
End;
Var x,a,b: real;
Begin
a:= V(3,4);
b:= V(2,4);
Writeln('V1=', a);
Writeln('V2=', b);
x:= a - b;
Writeln('V1 – V2=', x:4:1);
End.
Задание 2. Посмотритепримерфункции вычисляющей факториал числа.
В основной программе посчитайте выражение y = (m! + k!)/s!
Var
m,k,s:integer;
y:real;
Function factorial(n: byte): longint;
Begin
if (n = 0) or (n = 1) then factorial:= 1
else factorial:= n * factorial(n - 1);
End;
Begin
readln(m,k,s);
m:=factorial(m);
k:=factorial(k);
s:=factorial(s);
y:= (m + k)/s;
writeln('y= ',y);
end.
Задание 3. Составьте функцию, вычисляющую логарифм с произвольным основанием logab.
var a,b,logarifm:real;
Begin
writeln('vvediteosnovanie');
readln(b);
writeln('vveditelogarifm');
readln(a);
logarifm:=ln(a)/ln(b);
writeln('log=',logarifm);
end.
Задание 4. Составьтефункцию для вычисления площади кольца.
var r1,r2,s1,s2,s:real;
Begin
writeln('vvedite radius 1 kruga');
readln(r1);
writeln('vvedite radius 2 kruga');
readln(r2);
s1:=pi*r1*r1;
s2:=pi*r2*r2;
s:=s1-s2;
writeln('s kolca=',s);
end.
Рис. 7. Кольцо
Задание 5. Наберитекодпрограммы и посмотрите пример использования процедуры Color.
Program Example20;
Uses Crt;
Procedure Color(x, y: word);
Begin
TextColor(x);
TextBackGround(y);
End;
Begin
Color(1,5);
Write('Hello ');
Color(1,3);
Writeln('student!');
Readln;
End.
Задание 6. Доработайте программу, чтобы цвет фона и цвет текста вводились пользователем при запуске программы.
Uses Crt;
Procedure Color(x, y: word);
Begin
TextColor(x);
TextBackGround(y);
End;
var n,m,k,p:byte;
Begin
read(n,m);
read(k,p);
Color(n,m);
Write('Hello ');
Color(k,p);
Writeln('student!');
Readln;
End.
Библиографический список
1. Златопольский Д. М. Программирование: типовые задачи, алгоритмы, методы / Д. М. Златопольский. – Москва: БИНОМ. Лаборатория знаний, 2007. – 223
2. Информатика: Учебник / Б. В. Соболь, А. Б. Галин, Ю. В. Панов,
Е. В. Рашидова, Н. Н. Садовой. – Изд. 3-е, дополн. и перераб. – Ростов н/Д: Феникс, 2007. – 446 с.
3. Окулов С. М. Основы программирования: учебник / С. М. Окулов. – Изд.
5-е, испр. – Москва: БИНОМ. Лаборатория знаний, 2010. – 440 с.
4. Потопахин В. В. Современное программирование с нуля!: учеб. пособие / Потопахин В. – Изд. 2-е, испр. – Москва: ДМК-Пресс, 2011. – 240 с.
5. Рапаков Г. Г. TurboPascal для студентов и школьников: учебник /
Г. Г. Рапаков, С. Ю. Ржеуцкая. – Санкт-Петербург: БХВ-Петербург, 2007. – 352 с.
6. ФароновВ. В. Turbo Pascal 7.0. Практика программирования: учеб.
пособие / В. В. Фаронов. – Москва: Кнорус, 2007. – 416 с.
Учебное электронное текстовое издание
Паклина Валентина Михайловна
Паклина Елена Михайловна
Основы алгоритмизации и программирования
Редактор
Подготовка к публикации