русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

A, b:real;


Дата добавления: 2015-06-12; просмотров: 887; Нарушение авторских прав


ОГЛАВЛЕНИЕ

Лабораторная работа № 1. Линейные алгоритмы. 3

Лабораторная работа № 2. Разветвляющиеся алгоритмы. 6

Лабораторная работа № 3. Циклы. 10

Лабораторная работа № 4. Одномерные массивы. 13

Лабораторная работа № 5. Двумерные массивы. 17

Лабораторная работа № 6. Множества 21

Лабораторная работа № 7. Строки. 23

Лабораторная работа № 8. Файлы. 25

Лабораторная работа № 9. Записи. 27

Лабораторная работа № 10. Подпрограммы. 29

Библиографический список. 31

 


Лабораторная работа № 1. Линейные алгоритмы

Задание 1. Запустите среду программирования Pascal и наберите следующий код программы:

program example;

Uses Crt;

Var R, S, L: real;

Begin

Clrscr;

Write('R=');

Readln(R);

S:= pi*sqr(R);

L:= 2*pi*R;

Write('S=', S);

Write(' L=',L);

Readln;

End.

вычисляется в программе-S, L окружности

Задание 2.Определите, что появится на экране после выполнения команд:

a) x:=10;

y:=3;

z:=x/y;

Writeln(x, ’:’, y,’=’, z:3:1);

program example;

Uses Crt;

Var x, y, z: real;

Begin

write(x,y);

x:=10;

y:=3;

z:=x/y;

Readln(x,y);

Writeln(x, ':', y,'=', z:3:1);

End.

Появится:

10:3=3,3

b) x:= 9 mod 2;

y:= 9 div 2;

Writeln(‘Целая часть от деления 9 на 2 равна’, y);

Writeln(‘Остаток от деления 9 на 2 равен’, x);

Целая часть от деления на 2 равна 4

Остаток от деления 9 на 2 равен 1

 

Задание 3.Установите правильный порядок команд в программе, вычисляющей объем параллелепипеда.

4 Begin

7 V:=a*b*h;

1 Program Example1;

2 Uses Crt;

9 end.

8 Writeln(‘V=’,V:5:2);

3 Var h, a, b: integer;

V: real;

6 Write(‘a=’); Readln(a);

Write(‘b=’); Readln(b);

Write(‘h=’); Readln(h);

5 Writeln(‘Вычисление объема параллелепипеда’);

 

Задание 4.Составьте программу по заданной блок-схеме.



Начало
a, b
S = a + b
P = a · b
S, P
Конец

Рис. 1. Линейный алгоритм

program example;

Uses Crt;

Var a, b: integer;

S, P: real;

Begin

Write('a='); Readln(a);

Write('b='); Readln(b);

S:=a+b;

P:=a*b;

Writeln('S=',S:4:2);

Writeln('P=',P:4:2);

End.

Задание 5.Запишите следующие математические выражения на языке Pascal:

a) y = 2x2 + ex; y=2*sqr(x)+exp(x);

b) z = |tg(5x) – 2x|; z=abs(sin(5x)/cos(5x)-2*x);

c) a = b10; a=power(b,10);

d) y = log5 (3x-2); y=ln(3*x-2)/ln(5);

e) y = . y=sqrt(5*x).

Задание 6.Составьте программу для вычисления выражения
у=10log2(x2+2).

Program example;

uses crt;

var x,y: real;

begin

write(‘введите х’);

readln(x);

y:=10*(ln(x*x+2)/ln(2));

writeln ('y=',y);

end.

Задание 7.Составьте программу для вычисления синуса угла, заданного в градусах.

Programexample;

usescrt;

varx,y: real;

Begin

write('введите градусную меру угла');

readln(x);

y:=sin(x*pi/180);

writeln ('y=',y);

end.

 

Задание 8.Составьте программу, которая переводит величину, заданную в минутах в величину, выраженную в часах и минутах.

Например, 255 мин. = 4 ч. 15 мин.

 

Programexample;

usescrt;

varx,y,z: integer;

Begin

write('введите минуты');

readln(x);

y:=x div60;

z:=x mod60;

writeln(y,'часов',z,'минут');

readln;

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(‘число ’, х, ’ – четное’)

else writeln(‘число’, х, ’ – нечетное’);

начало
End.

Ввод х
y= x mod 2
У=0


данет

конец
Вывод Число х четное
Вывод число х нечетное


Задание 2.Установите правильный порядок выполнения команд в программе.

1 Program Example3;

5 Writeln(‘Введите два числа’);

2 Uses Crt;

6 Readln(a, b);

8 if a = b then Writeln(a, ‘=’, b) else Writeln(a, ‘<’, b);

3 Var a, b: integer;

7 if a > b then Writeln(a, ‘>’, b) else

4 Begin

9 End.

 

 

Задание 3.В алгоритме для вычисления значения функции y заполните пустые места.

,

Да
Нет
Нет
Да
Начало
х
У=
Вывод у
Конец
х<=-2
х<=-2

Рис. 2. Алгоритм вычисления значения функции

Задание 4.Разработайте программу для вычисления значения функции

Program E;

Uses Crt;

Var x, y : real;

Begin

Writeln('Введите x');

Readln(x);

If x<=-1 then y:=-ln(abs(x))+5 else if x<=1then y:=sqr(x)-1 else y:=-ln(abs(x));

Writeln('y=', y);

End.

 

 

Задание 5.Составьте программу по заданной блок-схеме.

 

Начало
a, b, c
Конец
a≤0 или b≤0 или c≤0
Длины сторон треугольника должны быть положительные
a+b>c и a+c>b и b+c>a
Нет
Да
Да
Нет
Со сторонами a, b, c можно составить треугольник  
Со сторонами a, b, c нельзя составить треугольник  

Рис. 3. Разветвляющийся алгоритм

Доработайте программу, чтобы в ней вычислялась площадь треугольника по формуле Герона ( , ).

Program abc;

Var a, b, c: real;

P,S: real;

Begin

Writeln('введите a, b, c ');

read(a,b,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);

8 else writeln(‘такой операции не существует’);

9 End;

10 End.

7 Case x of

‘+’: writeln(‘сложение’);

‘-‘: writeln(‘вычитание’);

‘*’: writeln(‘умножение’);

‘/’: writeln(‘деление’)

3 Var x: char;

4 Begin

5 Writeln(‘Введите символ арифметической операции’);

 


 

Лабораторная работа № 3. Циклы

Задание 1.Определите, что вычисляется в алгоритме. Составьте программу по данной блок-схеме.

Начало
n
S = 0
S
Конец
S = S + 1/i
i= 1, n, 1

Рис. 4. Цикл с параметром

Вычисляется сумма ряда 1 + 1/2 + 1/3 + 1/4 + ….

var n, i: integer;

s:real;

begin

writeln('введите количество чисел');

readln(n);

s:=0;

for i:=1 to n do begin

s:=s+1/i;

end;

writeln('Сумма данного ряда чисел s= ',s:5:5);

end.

Задание 2.Составьте программу для вычисления суммы ряда

1 + 1/3 + 1/5 + 1/7 + …

var n, i: integer;

s:real;

begin

writeln('введите количество чисел ');

readln(n);

s:=0;

i:=1;

while i<= n do begin

s:=s+1/i;

i:=i+2;

end;

writeln('Сумма данного ряда чисел s= ',s:5:5);

end.

Задание 3.Составьте программу для вычисления факториала

(n! = 1·2·3·…·n).

var n, i: integer;

f:real;

begin

writeln('Введите число');

readln(n);

f:=1;

for i:=1 to n do begin

f:=f*i;

end;

writeln(' факториал данного числа n!= ',f);

end.

 

Задание 4.Составьте программу, которая выводит на экран таблицу степеней двойки от 0 до 10.

var n, i: integer;

f:real;

begin

for i:=0 to 10 do begin

writeln('2 в степени ',i,'= ', power(2,i) );

end;

end.

 

Задание 5.Составьте программу, которая выводит на экран таблицу степеней для произвольного числа.

var n, i: integer;

f:real;

begin

writeln('введите число ');

readln(f);

for i:=0 to 10 do begin

writeln(' ',f, ' в степени ',i,'= ', power(f,i) );

end;

end.

 

Задание 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.

В программе составляется таблица значений уравнения: y=x2+1 , шаг 0

начало
Х=1

 


x>=10

конец
y= x2 +1
x:= x+0.5
 
Вывод у


Задание 8.Составьте программу, которая выводит таблицу значений функции y = 2x2 + 3x – 9 в диапазоне от – 3 до 3 с шагом 0,5.

Рекомендуемый вид экрана:

---------------

Х | У

---------------

– 3 | 0

– 2,5 | – 4

– 2 | – 7

… | …

3 | 18

---------------

 

Доработайте программу, чтобы диапазон и шаг можно было вводить при запуске программы.

Var x, y: real ;

a,z,k: real;

Begin

writeln('введите интервал переменной ');

readln(a,z);

writeln('введите шаг переменной');

readln(k);

x:= a;

writeln(' X | Y ');

writeln('_______________________');

writeln;

While x <= z do

Begin

y:= 2*sqr(x) + 3*x -9;

Writeln(x:5:1,' | ', y:10:1);

x:= x+k;

End;

End.

Задание 9.Составьте программу, в которой необходимо отгадать зашифрованное слово (например, КОБЯЛО). Пользователь вводит ответ до тех пор, пока не отгадает слово из этих букв. Как только введено правильное слово, программа завершается, и на экран выводится сообщение «Вы угадали с N попытки!».

uses crt;

var

a:string;

n:integer;

begin

while a<>'солнышко' do

begin

readln(a);

n:=n+1;

end;

writeln('Вы угадали с ',n,' попытки!');

end.

 

Задание 10. Составьте программу, которая находит все простые числа в диапазоне от A до B.

var

i,j,f:integer;

begin

write i,j

for i:=2 to 40 do

begin

f:=0;

for j:=2 to trunc(sqrt(i)) do

if i mod j=0 then f:=1; {f-ложно}

if f=0 then write(i,' ');

end;

end.

 

Задание 11. Составьте программу, которая находит все совершенные числа в диапазоне от A до B.

var d,n,m,i,sum:integer;

begin

writeln('начало диапазона');

read(n);

writeln('конец диапазона');

read(m);

Writeln ('совершенные числа:');

for d:= n to m do

begin

sum:=0;

for i:=1 to (d div 2) do

if d mod i =0 then sum:=sum+i;

if sum=d then writeln('совершенное','=',d);

end;

end.

 


Лабораторная работа № 4. Одномерные массивы

Задание 1.В алгоритме вычисления суммы и количества положительных элементов заполните пустые места.

Начало
n
S=o
a[i]
Конец
l=1, n, 1
K=0
S=S+ a[i]  
Вывод S,K  
I=1,n,1  
K=K+1  
a[i]>0  
Да
Нет

Рис. 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.

начало
Ввод n  
Вывод a[i]=  
i=1, n, 1  
i=1, n, 1  
max = a[1]  


a[i]>max  
max=  
данет

max= a[i]  
конец

 

 


Задание 3.Составьте программу, которая находит максимальный и минимальный элементы в одномерном массиве и их порядковые номера.

Var a: array[1..100] of integer;

i, n, max, min, c, b: integer;

Begin

Write('n=');

Readln(n);

for i:=1 to n do Begin

Write('a[',i,']=');

Readln(a[i]);

End;

max:=a[1];

min:=a[1];

for i:=2 to n do begin

if a[i]>max then begin

max:=a[i];

c:=i;

end;

if a[i]<min then begin

min:=a[i];

b:=i;

end;

end;

Writeln('max=',max, ' его порядковый номер = ', c);

Writeln('min=',min, ' его порядковый номер = ', b);

End.

 

 

Задание 4.Составьте программу, в которой меняются местами максимальный и минимальный элементы.

 

Var a: array[1..100] of integer;

i, n, max, min, c, b: integer;

Begin

Clrscr;

Write('n=');

Readln(n);

for i:=1 to n do Begin

Write('a[',i,']=');

Readln(a[i]);

End;

writeln;

max:=a[1];

min:=a[1];

for i:=2 to n do begin

if a[i]>max then begin

max:=a[i];

c:=i;

end;

if a[i]<min then begin

min:=a[i];

b:=i;

end;

end;

for i:=1 to n do Begin

if i=c then a[i]:=min else if i=b then a[i]:=max else a[i]:=a[i];

Writeln('a[',i,']=', a[i]);

End;

End.

 

Задание 5.Установите правильный порядок команд в программе, и определите, что в ней вычисляется.

 

3 Var a, b:array[1..100] of integer;

i, n, k: integer;

8 for i:=1 to n do

if a[i] < 0 then Begin

k:= k+1;

b[k]:= i;

End;

10 Readkey

11 End.

9 for i:= 1 to k do Write(b[i]:4);

2 Uses crt;

7 for i:= 1 to n do Begin

Write('a[', i, ']=');

Readln(a[i]);

End;

1 Program Example8;

4 Begin

5 Write('n=');

6 Readln(n);

k:= 0;

По количеству отрицательных элементов заданного массива составляется новый массив, элементы которого являются порядковыми номерами отрицательных элементов первоначального массива.

Var a, b:array[1..100] of integer;

i, n, k: integer;

Begin

Write('n=');

Readln(n);

k:= 0;

for i:= 1 to n do Begin

Write('a[', i, ']=');

Readln(a[i]);

End;

for i:=1 to n do

if a[i] < 0 then Begin

k:= k+1;

b[k]:= i;

End;

for i:= 1 to k do Write(b[i]:4);

End.

 

Задание 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.Составить программу, которая преобразует одномерный массив таким образом, чтобы сначала шли отрицательные, затем нулевые и положительные элементы.

Vara: array[1..100] ofinteger;

i, n:integer;

Begin

Write('n='); Readln(n);

fori:= 1 ton do Begin

Write('a[', i, ']=');

Readln(a[i]);

End;

fori:= 1 ton do begin

ifa[i] < 0 thenwrite(' ',a[i]);

end;

fori:= 1 ton do begin

ifa[i] = 0 thenwrite(' ',a[i]);

end;

fori:= 1 ton do begin

ifa[i] > 0 thenwrite(' ',a[i]);

end;

End.


 

Лабораторная работа № 5. Двумерные массивы

Задание 1.Заполните пустые места в алгоритме поиска минимального элемента в двумерном массиве.

 

a[i,j]<min  
min=a[1,1]  
Начало
n, m
 
a[i, j]  
Конец
i=1, n, 1  
min
Да
Нет
j=1, m, 1  
i=1, n, 1  
j=1, m, 1  
min=a[1,1]  
min=a[i,j]

Рис. 6. Двумерный массив

 

 

Задание 2.Составьте блок-схему к программе, вычисляющей произведение элементов двумерного массива.

 

начало
Program Example10;

Uses crt;

N, m
Var a: array[1..100, 1..100] of integer;

i, j, n, m: integer;

i= 1,n,1  
P: longint;

Begin

j= 1,m,1  
Clrscr;

Write('n='); Readln(n);

a[i]  
Write('m='); Readln(m);

P=1  
for i:= 1 to n do

for j:= 1 to m do Begin

Write('a[', i, j, ']=');

i= 1,n  
Readln(a[i, j]);

End;

j= 1,m  
P:= 1;

fori:=1 to n do

P=P*a[i]  
for j:= 1 to m do P:= P *a[i, j];

Write(‘P=’, P);

End.

конец
P  

 


Доработайте программу, чтобы на экран выводился массив в виде матрицы.

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

read(a[i,j]);

end;

for i:=1 to n do

begin

for j:=1 to m do

write(a[i,j]:5);

writeln;

End;

P:= 1;

for i:=1 to n do

for j:= 1 to m do P:= P *a[i, j];

Write('P= ', P);

End.

 

Задание 3.Составьте программу для поиска максимального элемента и его индексов.

var a:array[1..20,1..20] of integer;

max,i,j,nmax,mmax:integer;

begin

mmax:=1;

nmax:=1;

for i:= 1 to 3 do begin

for j:= 1 to 3 do

readln(a[i,j]);

end;

for i:= 1 to 3 do begin

for j:= 1 to 3 do

writeln;

max:=a[1,1];

end;

for i:= 2 to 3 do

begin for j:= 1 to 3 do

if a[i,j]>max then begin

max:=a[i,j];

nmax:=i;

mmax:=j;

end;

end;

writeln('max= ',max);

writeln('nmax= ',nmax);

write('mmax= ',mmax);

End.

 

 

Задание 4.Заполните пустые места в программе, вычисляющей сумму элементов, расположенных на главной диагонали.

 

Program Example11;

Uses crt;

Var a: array[1..100, 1..100] of integer;

i, j, n, m, S: integer;

Begin

Clrscr;

Write('n='); Readln(n);

for i:=1 to n do

for j:=1 to n do

begin  

Write('a[', i, j,']=');

Readln(a[i, j]);

end;  

S:= 0;

for i:=1 to n do

for j:=1 to n do if

i=j
then S:=S+a[i,j];

for i:= 1 to n do

Begin

for j:= 1 to n do

Write(a[i, j]:5);

Writeln;

End;

Writeln('S=', S);

End.

 

Доработайте программу, чтобы считалась сумма элементов, расположенных на побочной диагонали.

varmas:array[1..100,1..100]ofinteger;

i,j,n,sp:integer;

Begin

writeln('n=');

readln(n);

sp:=0;

randomize;

fori:=1 ton do

forj:=1 ton do

mas[i,j]:=random(50);

fori:=1 ton do begin

sp := sp + mas[i,N-i+1];

end;

fori:=1 ton do begin

forj:=1 ton do

write (mas[i,j]);

writeln;

end;

writeln(sp);

end.

 

Задание 5.Составьте программу для поиска максимального элемента на побочной диагонали. Для заполнения массива воспользуйтесь датчиком случайных чисел.

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

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

if i=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);

Задание 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:=1 to n do

for j:=1 to m do

begin

if i<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]:=-50+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;

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] [1,2,3,6,7,8,9]
[5, 6, 8, 9] * [3, 4, 5, 8, 10] [5,8,]
[‘a’, ‘b’, ‘c’, ‘d’, ‘e’] – [‘b’, ‘d’, ‘f’, ‘g’] [‘a’,’c’,’e’]
4 in [1, 2, 3, 4, 5] true
3 in [1, 2, 5, 7, 9] false

 

Задание 2.Правильный порядок команд в программе, объединяющей два множества:

3 Var M, N, L: set of byte;

5 N:= [1, 2, 3, 4, 8]; M:= [3, 4, 5, 6, 8];

8 End.

1 Program Example12;

6 L:= N + M;

4 Begin

2 Uses Crt;

 

Задание 3.Заполните пустые места в программе, определяющей количество цифр в тексте.

Program ABC;

Uses Crt;

Var G:

Set of  
char;

t: string;

i, n, m: byte;

Begin

Clrscr;

G:= ['0' .. '9'];

Writeln('Введите текст ');

Readln(t);

n:=0;  

For i:= 1 to Length(t) do Begin

if

T[i] in G  
then n:= n+1;

End;

Writeln(n);

Readkey;

End.

 

Задание 4.Составьте программу, которая заполняет множество нечетными числами от 1 до n (n ≤ 255) и выводит эти числа на экран.

Var A:set of byte;

i,n:integer;

Begin

write('n=');

readln(n);

for i:=1 to n do begin

if i mod 2=1 then

A:=A+[i];

end;

writeln('A',A);

 

end.

 

 

Задание 5.Составьте программу, которая заполняет множество простыми числами от 1 до n (n ≤ 255) и выводит эти числа на экран.

Var A:set of byte;

i,y,j,n:integer;

Begin

write('n=');

readln(n);

for i:=1 to n do begin

y:=0;

for j:=1 to i do

if i mod j=0 then y:=y+1;

if y=2 then A:=A+[i];

end;

writeln('A',A);

end.

 


Лабораторная работа № 7. Строки

Задание 1.Заполните пустые места в программе, подсчитывающей количество букв «а» в строке.

Program Example12;

Var S: string;

i, k: integer;

Begin

Writeln ('Введитестроку');

Readln (S);

k:=0;  

For i:= 1 to length(S) do

if

S[i]=’a’  
then
k:=k+1  

Writeln('Символ «а» встречается', k, ' раз');

End.

 

Задание 2.Укажите правильный порядок команд в программе, удаляющей из строки все буквы «о».

9 End.

2 Var S, T: string;

i: integer;

3 Begin

1 Program Example13;

7 if S[i] <>'о' then T:=T+S[i];

8 Writeln (T);

5 T:='';

6 For i:= 1 to length(S) do

4 Writeln ('Введите строку'); Readln (S);

 

Задание 3.Составьте программу, в которой все буквы «а» заменяются на буквы «о».

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.Составьте программу, в которой из строки удаляются все символы, кроме цифр.

ConstX = ['0' .. '9'];

VarS, T: string;

i: integer;

Begin

Writeln ('Введите строку');

Readln (S);

T:= ' ';

Fori:= 1 tolength(S) do

if(S[i] inX) thenT:= T+S[i];

Writeln(T);

Readln;

End.

 

 

Задание 6.Составьте программу, в которой из строки удаляются последние три символа.

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); {записываем последовательно строки в файл}

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.

Записывается набор чисел в файл 'C:\Example.txt'

Задание 3.Определите, что выполняется в программе. В фигурных скобках запишите назначение команд.

Program Example17;

Uses crt;

Var f: text;

st: string;

Begin

Clrscr;

Assign(f, 'C:\Example.txt');

Reset(f); { открываем файл для чтения}

While not EOF(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);

End.

Задание 5.Разработайте программу, которая считывает информацию из файла date.txt, находит максимальное число и общую сумму. Результат запишите в файл result.txt.

Var f,f2: text;

n,n1,max,sum:integer;

Begin

sum:=0;

Assign(f, 'C:\date.txt');

Reset(f);

assign(f2, 'C:\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;

Var Tbl: 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.

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('ФИО:'); Readln (FAM);

Write('Оценки: ');

Readln(B1, B2, B3, B4, B5);

End;

Writeln(' средний балл ');

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,'C:\средний балл.txt');

rewrite(k);

Write('n=');

Readln(n);

For i:=1 to n do

With Tbl[i] do Begin

Write('ФИO:'); Readln (FAM);

Write('Oценки: ');

Readln(B1, B2, B3, B4, B5);

End;

Writeln(Средний балл');

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);

close(k);

End;

End;

End.

 


 

Лабораторная работа № 10. Подпрограммы

Задание 1. Исправьте ошибки в программе.

Program Example19;

Uses Crt;

Function V(R, H: real): integer; real;

Begin

V:= pi*sqr(R)*H;

End;

Var x: integer; real;

a, b:real;

Begin

a:= V(3,4);

b:= V(2,4);

Writeln('V1=', a:4:2);

Writeln('V2=', b:4:2);

x:= a-b;

Writeln('V1 – V2=', x:4:1);

End.

Задание 2. Посмотрите пример функции вычисляющей факториал числа.
В основной программе посчитайте выражение y = (m! + k!)/s!

Function factorial(n: byte): longint;

Begin

if (n = 0) or (n = 1) then factorial:= 1

else factorial:= n * factorial(n - 1);

End;

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:integer;

m,k,y:real;

Function logar(n: byte): real;

Begin

if (n < 0) or (n = 0) then logar:= 0

else logar:= ln(n);

End;

begin

readln(a ,b);

m:=logar(a);

k:=logar(b);

y:= m/k;

writeln('y= ',y);

end.

 

 

Задание 4. Составьте функцию для вычисления площади кольца.

 

Рис. 7. Кольцо

const pi=3.14;

var sk,sb,sm:real;

r,Rb:integer;

Function plosh(n: byte): real;

Begin

if (n = 0) then plosh:= 0

else plosh:=pi*sqr(n);

End;

begin

readln(r ,Rb);

sb:=plosh(Rb);

sm:=plosh(r);

sk:=sb-sm;

writeln('sk= ',sk:5:2);

end.

 

Задание 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. Рапаков Г. Г. Turbo Pascal для студентов и школьников: учебник /
Г. Г. Рапаков, С. Ю. Ржеуцкая. – Санкт-Петербург: БХВ-Петербург, 2007. – 352 с.

6. Фаронов В. В. Turbo Pascal 7.0. Практика программирования: учеб.
пособие / В. В. Фаронов. – Москва: Кнорус, 2007. – 416 с.

 


 

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

 

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

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

 



<== предыдущая лекция | следующая лекция ==>
Функция 2 | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 5.28 сек.