Контрольная работа № 21 СИМВОЛЫ И СТРОКИ

Составьте программу, которая определяет, является ли введенный символ гласной или согласной буквой русского алфавита.

program junk;

uses crt;

var i:char;

Begin

clrscr;

writeln('Введитебукву');readln(i);

case i of

'е','э','о','а','ы','я','и','ю','ё':writeln('Гласная')

elsewriteln('Согласная')

end;

readln

end.

Пример.

Введите букву

а

Гласная

Контрольная работа №22 ПОДПРОГРАММЫ. ФУНКЦИИ И ПРОЦЕДУРЫ.

Составить рекурсивную программу ввода с клавиатуры последовательности чисел (окончание ввода –0) и вывода ее на экран в обратном порядке.

programpx;

procedurechisla;

vara: integer;

Begin

writeln('Введите целые числа, окончание ввода 0');

readln(a);

ifa <>0 then

Begin

chisla;

writeln(a);

end;

end;

Begin

chisla;

readln

end.

Пример.

Введите целые числа, окончание ввода 0

Введите целые числа, окончание ввода 0

Введите целые числа, окончание ввода 0

Введите целые числа, окончание ввода 0

Введите целые числа, окончание ввода 0

Введите целые числа, окончание ввода 0

Контрольная работа №23.ФАЙЛЫ ПОСЛЕДОВАТЕЛЬНОГО И ПРЯМОГО ДОСТУПА.

1. Дан текстовый файл, содержащий строки. Найти:

а) число строк;

б) число строк, начинающихся одинаковыми символами;

в) самые короткие строки;

г) симметричные строки

usescrt;

varf: text;

s,sp: string;

j,dmin,ks,ko: byte;

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

самые короткие строки:

Ванек

симетричные строки:

отсутствуют

Контрольная работа №24 ГРАФИКА ПАСКАЛЯ

Написать программу рисующую домик.

Uses graphABC;

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.

Пример.

Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru

Общие вопросы обязательные для выполнения студентом не зависимо от вариантов

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. Вычислить Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru .

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.Известно, что одна из корней уравнения Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru лежит в интервале [0,1]. Вычислить этот корень приближенно, с точностью 0,001 методом деления отрезка пополам.

13.Построить график функции Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru в промежутке x Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru [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.Траектория тела, брошенного под углом Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru к горизонту и начальной скоростью Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru (без учета сопротивления воздуха) определяется уравнениями

Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru

Моделировать траекторию полета и вычислить максимальную дальность и время полета, а также максимальную высоту подъема тела.

16.Вычислить сумму Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru , где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 м колебляется с большой амплитудой. Вычислить период колебания, если дано значение начального угла отклонения Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru в градусах. Уравнение колебания: Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru

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 м. Сила сопротивления вычисляется по формуле

Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru ( Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru скорость).

Найти время падения и конечную скорость шарика, если известно уравнение движения:

Контрольная работа № 21 СИМВОЛЫ И СТРОКИ - student2.ru

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.

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ ОТЧЕТА

Наши рекомендации