Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания на 0-10.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
158.72 Кб
Скачать

X: integer;

begin

writeln('Таблица степеней двойки');

x:=1;

for n:=0 to 10 do begin

writeln(n:2,x:6); x:=x*2;

end;

readln;

end.

21. Найдите номер столбца массива размером МхN, в котором находится наибольшее количество отрицательных элементов. Элементы вводятся с клавиатуры.

Решение:

program nomerstolb;

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

b: array[1..50] of integer;

i, j, m, n, max, jmax: integer;

Begin

Write('сколько строк?'); Readln(m);

Write('сколько столбцов?'); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

write('a[',i,',',j,']='); readln (a[i,j]); end; end;

for j:=1 to m do

begin

b[j]:=0;

for i:=1 to n do

if a[i,j]<0 then b[j]:=b[j]+1;

end;

max:=b[1]; jmax:=1;

For j:=2 to n do

begin

if b[j]>max then

begin

max:=b[j]; jmax:=j;

end;

writeln('наибольшее количество отрицательных элементов');

end; readln;

end.

22. Сконструируйте программу, которая упорядочит каждый столбец матрицы по возрастанию. Массив размером МхN, элементы которого задаются датчиком случайных чисел на интервале [-17;26].

Решение:

program porydok;

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

i, j, n, m,t,r: integer;

Begin

Write('Сколько строк?'); Readln(m);

Write('сколько столбцов?'); Readln(n);

For i:=1 to m do

begin

For j:=1 to n do

begin

a[i,j]:=random(44)-17;

write(a[i,j],' ');

end;

Writeln;

end;

For j:=1 to n do

For r:=1 to m do

For i:=1 to m-1 do

if a[i,j]> a[i+1,j] then

begin

t:= a[i,j];

a[i,j]:= a[i+1,j];

a[i+1,j]:= t;

end;

For i:=1 to m do

begin

For j:=1 to n do write(a[i,j],' ');

Writeln; end; End.

23. Сконструируйте программу, которая содержит записи о книгах. Сведения о каждой из книг – название книги, фамилия автора, год издания. Программа должна определять количество книг, год издания которых меньше или равен 1600 г. Число книг задать программно.

Решение:

Program qq;

Uses Crt;

Type

Pupil=Record

nazvanie: string[30];

fam:String[20];

god:integer;

End;

Type

Myarray=Array [1..5] of pupil;

Var

Mas1:MyArray;

i,n,k:Integer;

Procedure Vvod(Var Mas:Myarray);

Begin

Write('vvedite chislo knig'); ReadLn(n); WriteLn;

For i:=1 to n do

With Mas[i] do

Begin

writeln('Vvedite cherez probel nazvanie knigi and familiy avtora');

WriteLn('Kniga ',i);

Write('nazvanie and fam ');

ReadLn(nazvanie,fam);

writeln('vvedite god');

Write('God izdania');

ReadLn(god);

WriteLn; End; End;

Procedure Vivod(Var Mas:myarray);

Begin

k:=0;

For i:=1 to n do

With Mas[i] do

If god<1600 then k:=k+1;

WriteLn('Kol-vo knig s godom izdania <1600 = ', k);

End;

Begin

ClrScr;

Vvod(Mas1);

Vivod(Mas1);

ReadLn;

End.

24. Напишите алгоритм и программу вычисления функции Z=F1(x). Значения аргумента x функции F1 задано интервалом целых значений отрезка [a1, b1]. Шаг изменений значений аргумента принять равным единице. Данные для решения задачи: F1=4x+1,

[a1,b1] =[-10, 3].

Решение:

program zadanie3;

uses crt;

var i,x:integer;

f1,f3, max, min, Z:real;

begin

clrscr;

Z:=0;

writeln('Vicislenie znachenia fynkcii Z=symmF1(x)');

writeln('-----------------------------------------');

for i:=-10 to 3 do

begin

x:=i;

f3:=4*x;

writeln('ESLI X=',i, ' to F1 =',f3:5:2);

Z:=Z+f1;

end;

writeln('Znachenie fynkcii Z = ', Z:5:2);

writeln;

writeln('Dlya vixoda nazmite Enter');

readln;

end.

25. Напишите функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде одного из знаков: >, < или =.

Решение:

Program primer;

var

xl,x2: real;

res: char;

function Compare(a,b: real): char; begin

if a > b then Compare:='>' else

if a < b then Compare:='<'

else Compare:='=';

end;

begin

writeln('введите два числа и нажмите <Enter>');

write('->');

readln(xl,x2);

res:=Compare(xl,x2);

writeln(xl:6:2,res,x2:6:2);

readln; end.

26. Сконструируйте программу, которая создает файл phone.txt, находящийся на диске с:, в который можно записать фамилию, имя и номер телефона, например, вашего товарища. В файле каждый элемент данных (имя, фамилия, телефон) должен находиться в отдельной строке.

Решение:

Program qqq;

var

f: text;

fam: string[15]; name: string[15]; tel: string[9]; begin

writeln('Добавление в тел.справочник');

Assign(f,'d:\phone.txt');

Rewrite(f);

write('Фамилия->') ;

readln(fam);

write('Имя->');

readln(name);

write('Телефон ->') ;

readln(tel);

writeln(f,fam);

writeln(f,name);

writeln(f,tel);

close(f); writeln('Информация добавлена .');

writeln('Для завершения нажмите <Enter>.'); readln; end.

27. Сконструируйте программу для нахождения суммы положительных элементов в массиве размером M*N. Программу реализовать с использованием подпрограмм.

Решение:

Program primer;

Uses crt;

Type mas=array[1..4, 1..4] of integer;

Var tab:mas;

i,j:integer;

Symma:integer;

Procedure vvodmt(var m:mas);

Begin

Clrscr;

For i:=1 to 2 do

For j:=1 to 2 do begin

Writeln ('введите элементы массива N', i, ' ', j, ' ');

Readln(m[i,j]);

end;end;

Procedure Smtab(m: mas; var sm:integer);

Begin

Sm:=0;

For i:=1 to 2 do

For j:=1 to 2 do

If m[i,j]>0 then

Sm:=sm+m[i,j]; end;

Begin

Vvodmt(tab);

Smtab(tab, symma);

Writeln('сумма положительных= ', symma);

Readln; end.

28. Сконструируйте программу, которая вычисляет сумму элементов массива с четными номерами, содержащего N элементов. Элементы вводятся с клавиатуры.

Решение:

Program sumshet;

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

i, n: integer;

s,sred: real;

Begin

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

s:=0;

For i:=1 to n do

begin

write ('введите число'); readln (a[i]);

if i mod 2 = 0 then s:=s+a[i];

end;

writeln('сумма элементов с четными номерами: ',s:5:2); readln;

End.

29. Сконструируйте программу, которая вычисляет оптимальный вес пользователя, сравнивает его с реальным и выдает рекомендацию о необходимости поправиться или похудеть. Оптимальный вес вычисляется по формуле: рост (в сантиметрах)—100.

Решение:

Program qqq;

var w:real; h:real;

opt:real;

d:real;

begin

writeln('введите в одной строке через пробел');

writeln ('рост (см) и вес (кг), а затем нажмите <Enter>');

write('->'); readln(h,w); opt:=h-100; if w=opt then

writeln('ваш вес оптимален!') else

if w<opt

then begin

d:=opt-w;

writeln('вам надо поправиться  ',

d:5:2,' кг.'); end else begin

d:=w-opt;

writeln('вам надо похудеть на  ', d:5:2,'ЄЈ'); end; readln;

end.

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

Решение:

Program primer;

var

a: real;

n, i: integer;

sum, sred, min, max: real;

begin

writeln('обработка последовательности дробных чисел.');

write ('введите кол-во последовательности чисел ->');

readln(n);

writeln('введите последовательность.');

writeln('после каждого числа нажимайте <Enter>');

write('->');

readln(a);

min:=a;

max:=a; sum:=a;

for i:=1 to n-1 do begin

write('->');

readln(a);

sum:=sum+a;

if a < min then min:=a;

if a > max then max:=a; end; sred:=sum/n;

writeln('кол-во чисел*',n);

writeln('среднее арифметическое:',sred:6:2);

writeln('минимальное число:',min:6:2); writeln('максимальное число:',max:6:2);

writeln('для завершение нажмите <Enter>'); readln; end.

16