Основы алгоритмизации и программирования




ОГЛАВЛЕНИЕ

Лабораторная работа № 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 с.

 


 

Учебное электронное текстовое издание

 

Паклина Валентина Михайловна

Паклина Елена Михайловна

 

Основы алгоритмизации и программирования

 

Редактор

Подготовка к публикации



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: