Практическая часть для отчета
ПРАКТИЧЕСКАЯ ЧАСТЬ ДЛЯ ОТЧЕТА
Контрольная работа №1
Составить программу находящую площадь и периметр квадрата по введенным с клавиатуры эначениям его стороны.
programex_1;
vara,s,p:real;
Begin
writeln('введите сторону квадрата');
readln(a);
S:=a*a;
P:=4*a;
writeln('Площадь = ',s);
writeln('Периметр = ',p);
readln;
end.
Пример.
Сторона квадрата =3
Площадь = 9
Объем = 12
Контрольная работа №2
Составить программу вычисляющую значение выражения у=r-9/x3+5*√(2+r2)
programex_2;
vary:real;
x,r:integer;
Begin
write('Ведите значения x,r');
readln(x,r);
y:=r-9/(x*x*x)+5*sqrt(2+sgr(r));
writeln('y=',y);
readln;
end.
Пример.
Ведите значения x,r через пробел 1 2
y=5.24744871391589
Контрольная работа №3
Вывести на экран семь степеней целого числа а=2 в строчку через пробел.
Programex_3;
vara, i, prod: Integer;
Begin
WriteLn(a);
Read(a);
prod := 2;
fori := 1 to7 do
Begin
prod := prod*a;
Write(prod,' ');
read
end;
end.
Пример.
Вывести на экран семь степеней целого числа.a=2,выводит числа в строчку через пробел
4 8 16 32 64 128 256
Контрольная работа №4
Составить программу тест по географии, задающую тестовые вопросы с вариантами ответов, и выставляющий оценку, в зависимости от количества правильных ответов.
programtest;
vari,right,mark,v: longint;
answer,true1,true2,true3: char;
Begin
right:=0;
v:=3;
true1:='a';
true2:='b';
true3:='c';
fori:=1 tov do begin
ifi=1 then begin
writeln('Вопрос 1.Самоебольшоеозеро-море ...');
writeln('a) Каспийское');
writeln('b) Аральское');
writeln('c) Байкал');
readln(answer);
ifanswer=true1 theninc(right);
end;
ifi=2 thenbegin
writeln('Вопрос 2. Самое глубокое озеро на планете - Байкал. Его глубина составляет ... м');
writeln('a) 1500');
writeln('b) 1620');
writeln('c) 1200');
readln(answer);
ifanswer=true2 theninc(right);
end;
ifi=3 then begin
writeln('Вопрос 3.Местом накопления каких ресурсов являются горы?');
writeln('a) топливных');
writeln('b) климатических');
writeln('c) водных');
readln(answer);
ifanswer=true3 theninc(right);
end;
end;
ifright>1 thenmark:=5
elsemark:=2;
writeln('Вашаоценка ',mark,'. Вы дали ',right,' правильных ответов');
end.
Пример.
Самое большое озеро-море a= каспийское
а
Контрольная работа №5
Для целого числа х найти сумму квадратов его цифр в случае, если х трехзначное.
programnumber;
varb,b0,b1:integer;
Begin
write('Введите целое трехзначное число ');
readln(b);
b0 := b mod10;
b1 := b div10;
writeln('summa= ', b1 + b0);
end.
Пример.
Введите целое трехзначное число 178
summa= 25
Контрольная работа №6
Найти минимум из 3-х чисел введенных с клавиатуры.
programex_2;
vara1, a2, a3, min: integer;
Begin
write ('Введите три числа: ');
readln (a1, a2, a3);
ifa1 <= a2 then
min := a1
Else
min := a2;
ifa3 < min then
min := a3;
writeln ('минимальное из них: ', min);
readln
end.
Пример.
введите a1,a2,a3
1 2 3
минимальное из них: 1
Контрольная работа №7
Вычислить последовательность значений функции у=7х2-14/х+а ,где х принадлежит промежутку от[-10,-3]
programex_1;
varx,a:integer;y:real;
Begin
writeln('введите x');
readln(x);
writeln('введите a');
readln(a);
y:=7*(x*x)-14/x+a;
writeln('ответ ',y);
readln;
end.
Пример.
введите x
-10
введите a
ответ 706.4
Контрольная работа №8
Вывести на экран действительные числа в промежутке от -8 до 12 с шагом Н=0,5
Program ex_1;
varn,m: real;
Begin
write('Началопромежутка:' ); readln(n);
write('Конецпромежутка:' ); readln(m);
writeln(n );
whilen<=(m-0.5) do begin
n:=n+0.5;
writeln(n );
end;
end.
Пример.
Начало промежутка:-8
Конец промежутка:12
-8
-7.5
-7
-6.5
-6
-5.5
-5
-4.5
-4
-3.5
-3
-2.5
-2
-1.5
-1
-0.5
0.5
1.5
2.5
3.5
4.5
5.5
6.5
7.5
8.5
9.5
10.5
11.5
Контрольная работа №9
Вводится произвольная последовательность целых чисел, заканчивающаяся
нулем найти количество четных чисел.
Var
a, s, n:integer;
Begin
WriteLn('Введите числа, завершение -- 0:');
n:=0; s:=0;
Read(a);
while a<>0dobegin
ifnotodd(a)thenbegin
inc(n); s:=s+a;
end;
Read(a);
end;
if n>0then
WriteLn('Среднее арифметическое четных: ',s/n)
Else
WriteLn('Четных чисел не введено.');
end.
Пример.
Вводится произвольная последовательность. Окончание последовательности - 0.
10 10 20 30 0
Среднее арифметическое четных: 17.5
Контрольная №10
Вычислить у=2/5+3/7+4/9+…+а/в
Programex_10;
Vari, s, n:real;
Begin
S:=0;
Writeln ('Vvedite N');
Readln(n); i:=2;
Whilei<=n do
Begin
S:=s + (i)/(i*2+1);
I:=i+1;
End; writeln(S); readln; end.
Пример.
Vvedite N
0.828571428571429
Контрольная №11
Удалить наибольший элемент массива вещественных чисел.
VarA:array[1..100] ofinteger;
i,n,imax:byte;
Begin
write('Кол-воэлементов: ');readln(n);
Fori:=1 ton do
Begin
write('A[',i,'] = ');
readln(A[i]);
End;
writeln('Исходный');
imax:=1;
Fori:=1 ton do
Begin
write(A[i]:4);
ifA[i]>A[imax] thenimax:=i;
End;
writeln;
writeln('Max = ',A[imax]);
dec(n);
Fori:=imax ton do
A[i]:=A[i+1];
writeln('Преобразованный');
Fori:=1 ton do
write(A[i]:4);
readln;
End.
Пример.
Кол-во элементов: 5
A[1] = 1
A[2] = 2
A[3] = 3
A[4] = 4
A[5] = 5
Исходный
1 2 3 4 5
Max = 5
Преобразованный
Контрольная №12
Найти произведение положительных элементов двумерного массива целых чисел кратных 5.
Programotr;
Uses Crt;
var i,j,k:integer;
A:array[1..10,1..10]ofinteger;
Begin
CLRSCR;
k:=1;
for i:=1to10dobegin
for j:=1to10dobegin
A[i,j]:=random(99)+1;
Write(A[i,j],' ');
if A[i,j]div5=0then k:=k*A[i,j];
end;
Writeln;
end;
Writeln('k= ', k);
end.
Пример.
10 3 4 5 5 7 8 3 2 9
6 7 3 6 5 9 8 6 7 7
4 4 7 9 2 4 6 9 6 6
6 7 7 7 5 2 10 2 7 7
9 10 9 10 8 10 10 1 9 2
10 4 6 1 6 6 7 5 3 1
2 10 8 6 3 10 1 7 1 4
9 6 10 1 9 5 5 8 2 3
5 5 10 5 6 2 1 7 1 10
6 6 9 6 5 9 2 3 7 9
k= 291504128
Контрольная работа №13
programex_2;
Var
x,m: real;
Begin
writeln('x=');
readln(x);
m:=e*sqr(cos(x))-sin(x);
writeln('m=',m);
readln;
end.
Пример.
x=2
m=-0.438550301037024
Контрольная работа №14
Вычислить
programex_14;
varx,y,c:real;
Begin
write('x= ');
read(x);
write('c= ');
read(c);
ifx>c then
y:=sqrt(x+5/((x*x)+3))
else ifx<=c then
y:=(2/x-7*(x*x*x*x*x));
writeln('y= ',y);
readln;end.
Пример
x= 5
c= 2
y= 2.275647474582
Контрольная работа №15
1/2*3/4*5/6*7/8* ...
Programex_15;
Vari, s, n:real;
Begin
S:=1;
Writeln ('Vvedite N');
Readln(n); i:=2;
Whilei<=n do
Begin
S:=s * (I-1)/i;
I:=i+2;
End; writeln(S); readln; end.
Пример.
Vvedite N
0.375
Контрольная работа №16
[-1,0], h=0.01
programex_1;
VAR
N,X,pi, Y, H, X0, X1: REAL;
sin:real;
BEGINpi:=3.14;
x0:= -1; x1:=0;
H := 0.01;
X:=X0;
WHILEX<=X1
DO BEGIN
Y:=2*sqrt(1+(3*sin*x));
X := X + H;
WRITELN (X,' | ',Y);
END;
END.
Пример.
-0.99 | 2
-0.98 | 2
-0.97 | 2
-0.96 | 2
-0.95 | 2
-0.94 | 2
-0.93 | 2
-0.92 | 2
-0.91 | 2
-0.9 | 2
-0.89 | 2
-0.88 | 2
-0.87 | 2
-0.86 | 2
-0.85 | 2
-0.84 | 2
-0.83 | 2
-0.82 | 2
-0.81 | 2
-0.8 | 2
-0.79 | 2
-0.78 | 2
-0.77 | 2
-0.76 | 2
-0.75 | 2
-0.74 | 2
-0.73 | 2
-0.72 | 2
-0.71 | 2
-0.7 | 2
-0.69 | 2
-0.68 | 2
-0.67 | 2
-0.66 | 2
-0.65 | 2
-0.64 | 2
-0.63 | 2
-0.62 | 2
-0.61 | 2
-0.6 | 2
-0.59 | 2
-0.58 | 2
-0.57 | 2
-0.56 | 2
-0.55 | 2
-0.54 | 2
-0.53 | 2
-0.52 | 2
-0.51 | 2
-0.5 | 2
-0.49 | 2
-0.48 | 2
-0.47 | 2
-0.46 | 2
-0.45 | 2
-0.44 | 2
Контрольная работа №17
Заполнить линейный массив по формуле: х[i]=3 ;
programpp;
Vara:array[1..10] ofreal;
i,x,y:integer;
Begin
writeln('Массив: ');
fori := 1 to10 do
Begin
a [ i ]:=3*i*i+8*sqrt(i)-4;
write(a [ i ] :1:2, ' ');
end;
writeln;
fori := 1 to10 do
writeln;
end.
Пример.
Массив:
7.00 19.31 36.86 60.00 88.89 123.60 164.17 210.63 263.00 321.30
Контрольная работа №18
Заполнить массив случайным образом и вывести на экран только элементы большие наперед заданного числа а
programfpro;
Var
x : array[1..100] ofinteger;
i : integer;a:integer;
Begin
writeln('a= ');
readln(a);
fori :=1 to10 do
Begin
x[i] := random(1,20);
if(x[i] >10) and(x[i] <20) thenwriteln(x[i]);
end;
end.
Пример.
a=8
Begin
clrscr;
writeln('Введитебукву');readln(i);
case i of
'е','э','о','а','ы','я','и','ю','ё':writeln('Гласная')
elsewriteln('Согласная')
end;
readln
end.
Пример.
Введите букву
а
Гласная
Begin
writeln('Введите целые числа, окончание ввода 0');
readln(a);
ifa <>0 then
Begin
chisla;
writeln(a);
end;
end;
Begin
chisla;
readln
end.
Пример.
Введите целые числа, окончание ввода 0
Введите целые числа, окончание ввода 0
Введите целые числа, окончание ввода 0
Введите целые числа, окончание ввода 0
Введите целые числа, окончание ввода 0
Введите целые числа, окончание ввода 0
Begin
assign(f,'a.txt');
reset (f); dmin:=255;
while noteof(f) do
Begin
inc(ks);
readln(f,s);
ifs[1]=s[length(s)] theninc(ko);
iflength(s)<dmin thendmin:=length(s);
end;
writeln('число строк ',ks);
writeln('число строк начинающихся и заканчивающихся одинаковыми символами ',ko);
writeln('самые короткие строки: ');
reset(f);
while noteof(f) do
Begin
readln(f,s);
iflength(s)=dmin thenwriteln(s);
end;
writeln('симетричныестроки:');
reset(f);
ks:=0;
while noteof(f) do
Begin
sp:='';
readln(f,s);
forj:=1 tolength(s) do
Begin
sp:=s[j]+sp;
ifsp=s thenwriteln(s);
end;
end;
ifks=0 thenwriteln('отсутствуют');
close(f);
readln;
end.
Пример.
число строк 4
число строк начинающихся и заканчивающихся одинаковыми символами 0
самые короткие строки:
Ванек
симетричные строки:
отсутствуют
Begin
line(100,100,150,50);
line(150,50,200,100);
line(200,100,100,100);
floodfill(120,90,clgreen);
SetBrushcolor(clred);
rectangle(115,100,185,150);
SetBrushcolor(clblue);
circle(150,75,5);
SetBrushcolor(clgray);
rectangle(125,120,140,140);
SetBrushcolor(clred);
textOut(150,110,'Дом');
end.
Пример.
Общие вопросы обязательные для выполнения студентом не зависимо от вариантов
1.Дано натуральное число n. Найти число, цифры, которых расположены в обратном порядке цифрам данного числа.
Programpp;
varn:longint;
p,s:real;
m,x:integer;
Begin
write('Введите натуральное число : ');
readln(n);
s:=0;
p:=0.1;
forx:=(n mod10) downto1 do
n:=n div10;
p:=p*10;
s:=s+x*p;
writeln(s:0:0);
readln;
end.
2.Данынатуральныечислаa, b, c. Вычислить .
Programpp;
vara,b,c:integer;abc:real;
functionfaktorial(k:integer):integer;varp,j:integer;
Begin
p:=1;
forj:= 1 tok do
Begin
p:=p*j;
end;
faktorial:=p;
end;
Begin
writeln('a,b,c');
readln(a,b,c);
abc:=faktorial(a+b+c)/faktorial(a)*faktorial(b)*faktorial(c);
writeln('rez=',abc);
end.
3.Дан массив, элементы, которых являются случайными натуральными числами. Преобразовать данный массив, расположив их элементы в порядке убывания
constn=20;
typemass=array[1..n] ofinteger;
varx:mass; i,k,m,j:integer;
Begin
fori:=1 ton do
Begin
x[i]:=random (40)-20;
write (x[i],' ');
end;
writeln;
fori:= n downto2 do
Begin
k:=i;
m:=x[i];
forj:= 1 toi-1 do
ifx[j]<m then
Begin
k:=j;
m:=x[k];
end;
ifk<>i then
Begin
x[k]:=x[i];
x[i]:=m;
end;
end;
fori:=1 ton dowrite (x[i],' ');
end.
4.Дано натуральное число n. Какое это число, простое или составное?
programpp;
varn,i:longint;
b:boolean;
Begin
Repeat
write ('Число = ');
readln(n);
untiln >0;
b:=false;
fori:=2 ton div2 do
ifn modi = 0 then
Begin
b:=true;
break;
end;
if(notb) and(n <>1) thenwriteln ('Простое') elsewriteln ('Составное');
readln;
end.
boolen –это логический тип, переменные этого типа могут принимать 2 значения true=истина и false=ложь.
5.Дан численный массив M, элементы, которых упорядочены по возрастанию и числоa. Не нарушая порядок возрастания элементов включить число aв массив M.
programptt;
Type
ppt = array[ 1 .. 22 ] ofinteger;
procedureMyInsert(vara:ppt; varn:byte; x:integer);
vari, j:byte;
Begin
i := 1;
while(i <= n) and(x > a[ i ]) do
inc(i); {или i := i + 1;}
inc(n); {или n := n + 1;}
forj := n downtoi + 1 do
a[ j ] := a[ j - 1 ];
a[ i ] := x
end;
procedurePrintArray(consta:ppt; constn:byte);
vari:byte;
Begin
fori := 1 ton do
write(a[ i ]:5);
writeln
end;
Var
a:ppt;
n, i:byte;
Begin
randomize;
n := 20;
a[ 1 ] := random(8) - 15;
fori := 2 ton do
a[ i ] := a[ i - 1 ] + random(5) + 1;
writeln('Исходныймассив: ');
PrintArray(a, n);
MyInsert(a, n, -5);
writeln('Вставленочисло -5:');
PrintArray(a, n);
MyInsert(a, n, 10);
writeln('Вставленочисло 10:');
PrintArray(a, n);
readln
end.
6.Дана числовая таблица размера n× m. Составить программу, которая обращают в нуль все элементы i-ой строки и j-ого столбца. 0≤i≤n, 0≤j≤m
constnmax=20;
vara:array[1..nmax,1..nmax] ofinteger;
m,n,i,j:byte;
mn:integer;
Begin
randomize;
Repeat
write('Количествострокдо ',nmax,' m=');
readln(m);
untilm in[1..nmax];
Repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
untiln in[1..nmax];
writeln('Исходнаяматрица:');
fori:=1 tom do
Begin
forj:=1 ton do
Begin
write(a[i,j]:3);
end;
writeln;
end;
writeln('Замена элементов строк на минимальный в них');
fori:=1 tom do
Begin
mn:=a[i,1];
forj:=1 ton do
ifa[i,j]<mn thenmn:=a[i,j];
forj:=1 ton do
Begin
a[i,j]:=mn;
write(a[i,j]:3)
end;
writeln
end;
readln
end.
7.Дана строка, состоящая исключительно из цифр. Найти наибольшее число рядом стоящих одинаковых цифр и определить, какое это число.
constny: array[boolean] ofstring[3] = ('No','Yes');
vari, n: integer; b: boolean;
Begin
writeln('Если в числе есть одинаковые цифры то выйдет слово Yes,Если нет то No ');
write('Введите число n = ');
readln(n);
n := abs(n);
b := false;
ifn >0 then
fori := 1 totrunc(ln(n) / ln(10)) do
Begin
b := n mod10 = n mod100 div10;
ifb then break;
n := n div10
end;
writeln(ny[b]);
readln
end.
8.Дано натуральное число n. Составить программу, которая рисует правильныйn -угольник.
9.Используя кодирование A ->15, B -> 16, C -> 17, D-> 18, E-> 19, …, Z-> 40 шифруйте любое слово, состоящее из заглавных английских букв.
vars:string;
s1:string;
k,l,i,j:integer;
m:array[1..100] ofinteger;
Begin
s1:='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
writeln('Введитебукву');
readln(s);
fori:=1 to30 do
forj:=1 to20 do
fork:=1 to10 do
Begin
m[j]:=k+j*1+i*2;
end;
fori:=1 tolength(s) do
forj:=1 tolength(s1) do
ifs1[j]=s[i] thenwrite(m[j]);
writeln;
readln;
end.
9.Дан численный массив M, количество элементов которого равно nи натуральное числоk (k£n). Исключить из массива элемент индекса k.
vara:array[1..100] ofinteger;
i,k,m,n:integer;
Begin
Randomize;
Write('n=');
Readln(n);
fori:=1 ton do
Begin
a[i]:=random(20)-10;
Write(a[i],' ');
end;
Writeln;
Repeat
Write('k=');
Readln(k);
untilk in[1..n];
fori:=1 ton do
ifi=k then
m:=1
Else
a[i-m]:=a[i];
n:=n-m;
fori:=1 ton do
Write(a[i],' ');
Readln;
end.
11.Найти все пятизначные числа, цифры которых составляют арифметическую прогрессию. Сколькоих?
Var
a:longint;
d,f:integer;
Begin
Repeat
writeln('Введитечислобольше 9');
readln(a);
untila>9;
d:= (a div10)mod10-a mod10;
Repeat
if(a div10)mod10-a mod10<>d thenf:=1;
a:=a div10;
untila<10;
iff=0 thenwriteln('yes')elsewriteln('no');
end.
12.Известно, что одна из корней уравнения лежит в интервале [0,1]. Вычислить этот корень приближенно, с точностью 0,001 методом деления отрезка пополам.
13.Построить график функции в промежутке x [0,10].
14.Составить программу, позволяющую выводить каждую букву слова «INFORMATICA» с определенной позиции разным цветом через 1 секунд.
programppt;
vara,b:real;
Begin
writeln('clovo informatika');
readln(a);
Begin
while noteof(f2)do
Begin
read(f2,b);
ori:=1 ton do
ifi=1 then
Begin
TextColor(12);
write(b[i],' ');
End
else ifi=1 then
Begin
TextColor(14);
write(b[i],' ');
End
Else
Begin
TextColor(15);
write(b[i],' ');
end;
writeln;
end;
15.Траектория тела, брошенного под углом к горизонту и начальной скоростью (без учета сопротивления воздуха) определяется уравнениями
Моделировать траекторию полета и вычислить максимальную дальность и время полета, а также максимальную высоту подъема тела.
16.Вычислить сумму , гдеn –натуральное, а х – действительное число
17. Составить программу для выведения на экран стандартных символов ASCII-кода в виде таблицы размера 16 х 16
Var
i,j: byte;
Begin
fori := 0 to15 do begin
forj := 0 to15 do
write (chr(i*16+j):2);
write (chr(i*16+j):2);
writeln
end;
readln
end.
18.Даны действительные числа a, в. Выбирая одну из действии, указанные символами ('+' , '-' , '*' , '/,), показать результат выполнения действия с данными числами.
varn:integer;
vara, b:real;
Begin
Writeln('Введите номер действия и два числа A и B');
Read(n, a, b);
casen of
1:writeln('Ответ: ',a+b);
2:writeln('Ответ: ',a-b);
3:writeln('Ответ: ',a*b);
4:writeln('Ответ: ',a/b);
elsewriteln('Ошибка');
end;
readln;
end.
19.Составить программу для записи вводимого текста с клавиатуры в текстовый файл «text1.txt», а также и для чтения с этого файла.
Programprr;
varfl:text;
str:string;
Begin
assign (fl, 'rp.txt');
rewrite (fl);
read (str);
write (fl,str);
close(fl);
end.
20.Используя тип данных – записи сформировать файл с данными: Ф.И.О., год рождения, специальность, наименование учебной группы студента
TypeAnketa=Record
FIO:string[30];
God:byte;
Dolj:string[15];
Staj:integer;
Obraz:string[2];
End;
Varf:file ofAnketa;
f1:Anketa;
j,s,n,x:integer;
ProcedureZapol(n:integer);
Vari:integer;
Begin
Assign(f,'anketa.dat');Rewrite(f);
Fori:=1 ton do Begin
WitHf1 do Begin
write('ВведитеФ.И.О [',i,']-госотрудника ');readln(FIO);
write('Введите год рождения [',i,']-го сотрудника ');readln(God);
write('Введите должность [',i,']-го сотрудника ');readln(Dolj);
write('Введите Стаж [',i,']-го сотрудника ');readln(Staj);
write('Введите оброзование [',i,']-го сотрудника (sr/vs) ');readln(Obraz);
End;
write(f,f1);
End;
End;
Begin
Repeat
Writeln('1: Заполнениеанкетy');
Writeln('2: Просмотр (Нужно чтобы файл был заполнен) ');
Writeln('3: Выход');
Write('Введите число 1-3: ');readln(x);
Casex of
1:Begin
Write('Введитекол-воучеников ');readln(n);Zapol(n);End;
2:Begin
Assign(f,'Anketa.dat');Reset(f);
s:=0;j:=0;
While notEof(f) do Begin
Read(f,f1);
Withf1 do
if(Obraz='vs')or(Obraz='Vs') tHen Begins:=s+Staj;inc(j);End;
End;
writeln('Среднее= ',s/j:0:2);
End;
End;
Untilx=3;
End.
27) Груз на невесомом жестком подвесе длинойL=1 м колебляется с большой амплитудой. Вычислить период колебания, если дано значение начального угла отклонения в градусах. Уравнение колебания:
Programex_1;
varl,P,t,w,g,f:real;
Begin
t:=0;
w:=0;
g:=10;
f:=0;
p:= (-g/l)*sin(f);
writeln('периодкoлебанияравен',p);
end.
28) Шарик массой 5 г и радиусом 4 мм падает в масло с высоты 1,5 м. Сила сопротивления вычисляется по формуле
( скорость).
Найти время падения и конечную скорость шарика, если известно уравнение движения:
Programex_1;
Varf,n,t,u,nu,m,pi,h,r:real;
Begin
Nu:=0.92;
g:=10; m:=0.005;
pi:=3.14; h:=1.5; r:=0.04;
writeln('введите скорость движения шарика'); readln(u);
f:=6*pi*g*r*nu*u;
t:=(m*u)/(m*g*f);
writeln('t=',t);
end.
29.Вывести на экран последовательность чисел и вычислить сумму ряда: 1/2,1/4, 1/6, 1/8, 1/10, ...
programpp;
varx,y,a,b:integer;s:real;
Begin
writeln(a,b);
readln(a,b);
x:=1;
y:=2;
s:=0;
whilex<=a do begin
s:=s+x/y;
x:=x+3;
y:=y+2;
end;
writeln(s);
end.
30.Составить программу для вычисления наибольшего общего кратного трех данных натуральных чисел a, b и c.
Vara,b,c,d,K,P,T:integer; nok:real;
functionnod(x,y:integer; Varz:integer):integer;
Begin
whilex<>y do
Begin
ifx>y thenx:=x-y
elsey:=y-x
end;
z:=x
end;
Begin
writeln('enter a,b,c');
readln(a,b,c,d);
nod(a,b,K); nod(c,d,P);
nod(K,P,T);
writeln('nod(a,b,c)=', T);
nok:=(a*b*c)/T;
writeln('NOK=', nok)
end.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ ОТЧЕТА
Составление простейших программ в Pascalявляются такие как подсчет различных букв в слове ,перестановка букв в слове, подсчет суммы одномерного массива , подсчет суммыдвумерного массива, решения уравнения и тд.
Пример .Подсчет суммы элементов одномерного массива.
Program n8;
var a:array[1..10] of integer;
s:longint;
i:integer;
begin
writeln('введите 10 элементовмассива');
s:=0;
for i:=1 to 10 do begin
readln( a[i] );
s:=s+a[i];
end;
writeln( 'Сумма элементов массива = ', s );
end.
Любая программа начинается с слова program.
Var- описания переменных.
a:array[1..10]- одномерный массив.
Begin-начало основной программы.
Writeln-вывод текста.
Readln-ввод текста
s:=0-счетчик.
For-цикл.
End-конец.
Условный оператор
Условный оператор в Паскале — if — служит для организации хода задачи таким образом, при котором изменяется последовательность выполнения операторов в зависимости от какого-либо логического условия. Логическое условие может принимать одно из двух значений: либо true (истина), либо false (ложь), соответственно, оно может быть либо истинным, либо ложным.
Programpp;
vara,b,c,s,i: integer;
k: boolean;
Begin
writeln('Введите a и b');
readln(a,b);
c:=a;
whilec<=b do
Begin
k:=true;
fori:=2 toc-1 do
ifc modi = 0 thenk:=false;
ifk=true thenwriteln(c);
c:=c+1;
end;
end.
3.Оператор варианта
Оператор case в Паскале используется в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те или иные действия (простые или составные операторы).Если вариантов всего два, то можно обойтись и условным оператором IF, с которым мы уже знакомы. Но если их, к примеру, десять, то использовать конструкцию if then else в pascal становится совсем нецелесообразно. В этом случае оптимален оператор CASE варианта.
Пример.
var otmetka:integer;
beginwriteln('otmetka?');readln(otmetka);if(otmetka=1)or(otmetka=2)thenwriteln('koshmar!')elseif otmetka=3thenwriteln('ploho')elseif otmetka=4thenwriteln('neploho')elseif otmetka=5thenwriteln('otlichno!')elsewriteln('takih otmetok ne bivaet');end.Var
i: integer;
Begin
i := 0;
Repeat
i := i + 1;
until i > 10;
End.
Циклы с постусловием
Repeat — полная противоположность while. Repeat — это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false; как только логическое выражение становится true, выполнение цикла прекращается.
programex;
vari, N: integer;
Begin
i := 1;
readln(N);
Repeat
write(i, ' ');
Inc(i);
untili = N + 1;
end.
Циклы с параметром
For — это цикл, в котором тело выполняется заданное количество раз.
Пример. Таблица умножения на 7
Vari:byte;
Begin
for i :=1to10do
writeln('7 × ', i,' = ',7* i);
readln
end.
Подсчет суммы первых 1000 натуральных чисел.
vari, sum: integer;
Begin
sum := 0;
fori := 1 to1000 do
sum := sum + i;
writeln('Результат: ', sum);
readln
end.
Begin
WriteLn ('введите количество элементов массивов');
ReadLn (Kolvo);
WriteLn ('введите элементы маcсива A');
Fori:=1 toKolvo do
Begin
Write(i, ') ');
ReadLn (A[i]);
end;
writeLn ('введитеэлементымаcсива B');
Fori:=1 toKolvo do
Begin
Write(i, ') ');
ReadLn (B[i]);
end;
Fori:=1 toKolvo do
C[i]:= A[i]+B[i];
Fori:=1 toKolvo do
Writeln (C[i]:5);
End.
Пример.Таблицы ASCII, конкретнее — символы, соответствующие кодам 32-255.
var i:integer;beginfor i:=32to255dowrite(chr(i):3);end.Процедуры и функции
Подпрограмма — это фрагмент кода, который имеет свое имя и создается в случае необходимости выполнять этот код несколько (много) раз. Подпрограмма описывается единожды перед началом основной программы (до begin). Компилятор пропускает данный фрагмент кода, пока в основной программе не встретит «вызов» подпрограммы, который выглядит как обращение к ней по имени (возможно, имени с аргументами, указанными в скобках).Процедура без параметров.procedurepr;
vari:integer;
Begin
fori:=1 to60 do begin
write('*');
writeln;
end;
end;
Begin
pr;
end.Процедура с параметром.procedure Tr( x, y: integer; color:system.Drawing.Color);beginMoveTo(x, y);LineTo(x, y-60);LineTo(x+100, y);LineTo(x, y);FloodFill(x+20, y-20,color);end;beginSetPenColor(clBlack);Tr(100, 100, clBlue);Tr(200, 100, clGreen);Tr(200, 160, clRed);end.10.Множественный тип данных.Записи в Паскале – структурированный комбинированный тип данных. Запись состоит из определенного числа компонент, называемых полями, которые могут быть разного типа.typemydate = record
month: 1..12;
day: 1..31;
year: integer
end;
vard: mydate;
Begin
d.day:=1;
d.month:=12;
readln(d.year);
writeln(d.day,'/',d.month,'/',d.year);
end.11.Файловый тип данных.Текстовый файл в Паскале — это совокупность строк произвольной длины, которые разделены между собой метками конца строки, а весь файл заканчивается меткой конца файла.Считать из файла input.txt числа (числа записаны в столбик). Затем записать их произведение в файл output.txtvar p, x:integer; f: text;beginassign(f,'input.txt');reset(f);p :=1;whilenoteof(f)dobeginreadln(f, x); p := p * x;end;close(f);assign(f,'output.txt');rewrite(f);writeln(f,'Произведение чисел ', p);close(f);end.12.Графические возможности Паскаля модули CRT, GRAPH.Для использования графических возможностей ПаскальАВС служит модуль GraphABC.programxxx;
usesgraphabc, crt;
Var
i, x,y:integer;
Begin
fori:=1 to500 do
Begin
x:= random(600);
y:= random(400) ;
circle(x, y,random(40));
floodfill(x, y,rgb(random(155)+100,random(155)+100,random(155)+100));
delay(100);
end;
end.Заключение
ПРАКТИЧЕСКАЯ ЧАСТЬ ДЛЯ ОТЧЕТА
Контрольная работа №1
Составить программу находящую площадь и периметр квадрата по введенным с клавиатуры эначениям его стороны.
programex_1;
vara,s,p:real;
Begin
writeln('введите сторону квадрата');
readln(a);
S:=a*a;
P:=4*a;
writeln('Площадь = ',s);
writeln('Периметр = ',p);
readln;
end.
Пример.
Сторона квадрата =3
Площадь = 9
Объем = 12
Контрольная работа №2
Составить программу вычисляющую значение выражения у=r-9/x3+5*√(2+r2)
programex_2;
vary:real;
x,r:integer;
Begin
write('Ведите значения x,r');
readln(x,r);
y:=r-9/(x*x*x)+5*sqrt(2+sgr(r));
writeln('y=',y);
readln;
end.
Пример.
Ведите значения x,r через пробел 1 2
y=5.24744871391589
Контрольная работа №3
Вывести на экран семь степеней целого числа а=2 в строчку через пробел.
Programex_3;
vara, i, prod: Integer;
Begin
WriteLn(a);
Read(a);
prod := 2;
fori := 1 to7 do
Begin
prod := prod*a;
Write(prod,' ');
read
end;
end.
Пример.
Вывести на экран семь степеней целого числа.a=2,выводит числа в строчку через пробел
4 8 16 32 64 128 256
Контрольная работа №4
Составить программу тест по географии, задающую тестовые вопросы с вариантами ответов, и выставляющий оценку, в зависимости от количества правильных ответов.
programtest;
vari,right,mark,v: longint;
answer,true1,true2,true3: char;
Begin
right:=0;
v:=3;
true1:='a';
true2:='b';
true3:='c';
fori:=1 tov do begin
ifi=1 then begin
writeln('Вопрос 1.Самоебольшоеозеро-море ...');
writeln('a) Каспийское');
writeln('b) Аральское');
writeln('c) Байкал');
readln(answer);
ifanswer=true1 theninc(right);
end;
ifi=2 thenbegin
writeln('Вопрос 2. Самое глубокое озеро на планете - Байкал. Его глубина составляет ... м');
writeln('a) 1500');
writeln('b) 1620');
writeln('c) 1200');
readln(answer);
ifanswer=true2 theninc(right);
end;
ifi=3 then begin
writeln('Вопрос 3.Местом накопления каких ресурсов являются горы?');
writeln('a) топливных');
writeln('b) климатических');
writeln('c) водных');
readln(answer);
ifanswer=true3 theninc(right);
end;
end;
ifright>1 thenmark:=5
elsemark:=2;
writeln('Вашаоценка ',mark,'. Вы дали ',right,' правильных ответов');
end.
Пример.
Самое большое озеро-море a= каспийское
а
Контрольная работа №5
Для целого числа х найти сумму квадратов его цифр в случае, если х трехзначное.
programnumber;
varb,b0,b1:integer;
Begin
write('Введите целое трехзначное число ');
readln(b);
b0 := b mod10;
b1 := b div10;
writeln('summa= ', b1 + b0);
end.
Пример.
Введите целое трехзначное число 178
summa= 25
Контрольная работа №6
Найти минимум из 3-х чисел введенных с клавиатуры.
programex_2;
vara1, a2, a3, min: integer;
Begin
write ('Введите три числа: ');
readln (a1, a