Var a,b,c:integer;
Begin clrscr;
Writeln (‘a= b= c=’);
Readln (a,b,c);
if (a=c) or (a=b) then writeln (‘ravnobedr’)
else writeln (‘ ne ravnobedr’);
End.
Раздел: Алгоритмы циклической структуры:
1.Описание: Написать программу на языке Pascal для реализации циклического алгоритма n, х – известные величины.
var i,j,fact,n:integer;
s,x:real;
begin
writeln;
write('Vvedite n=');
readln(n);
write('Vvedite x=');
readln(x);
s:=0;
for i:=1 to n do begin fact:=1;
for j:=1 to i do Fact:=fact*j;
s:=s+(1/fact+sqrt(abs(x)));
end;
writeln('s=',s:4:2);
readln;
end.
2.Описание: Написать программу на языке Pascal для реализации циклического алгоритма
n – известные величины. program one;
var i,j,n,zn,factorial:integer; s,x:real; begin writeln; write('Vvedite n='); readln(n); s:=0; factorial:=1; zn:=1; for i:=1 to n do begin zn:=zn*(-1); factorial:=factorial*i; s:=s+(zn*(i+1)/factorial); end; writeln('s=',s:4:3); readln; end.
3.Описание: Написать программу на языке Pascal для реализации циклического алгоритма
s=1/1*2-1/2*3+…+(-1)n+1/n(n+1) n – известные величины.
program one;
var i,j,n,zn:intege r; s,x:real; begin writeln; write('Vvedite n='); readln(n); s:=0; zn:=-1; for i:=1 to n do begin zn:=zn*(-1); s:=s+zn/(i*(i+1)); end; writeln('s=',s:4:2); readln; end.
4.Описание: Написать программу на языке Pascal для реализации циклического алгоритма
n – известные величины. program one;
var i,j,n:integer; stepen:integer; s:real; begin writeln; write('Vvedite n='); readln(n); s:=0; for i:=1 to n do begin stepen:=1; for j:=1 to 5 do begin stepen:=stepen*i; end; s:=s+1/stepen; end; writeln('s=',s:4:2); readln; end.
5. Описание: Написать программу, которая выводит целые четные числа с клавиатуры и складывает их , пока не будет введено число 0.
Program 5;
Uses crt;
Var n,s:integer.;
Begin clrscr;
S:=0;
Repeat;
Writeln(vvedi chislo);
Readln(n);
S:=s+n;
Until n=0;
Writeln(s=,s);
Readln;
End.
6. Описание: Составить программу, подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+…+1/N
Program 1;
Uses crt;
Var s:real; n;integer;
Begin clrscr;
S:=0; n:=0;
Repeat;
N:=n+1;
S:=s+1/n;
Until n=1000;
Writeln(s);
End.
7. Описание: Напечатать 20 первых степеней числа 2.
Program 2;
Uses crt;
Var n,s:longint;
Begin clrscr;
S:=1;
N:=1;
Repeat S:=s*2;
Writeln(s,);
N:=n+1;
Until n>20; Readln;
End.
8. Описание:Известны оценки по информатике каждого из 20 учеников класса. В начале списка Перечислены все «5»,затем остальные оценки. Сколько учеников имеют оценку «5»?
Program 5;
Uses crt;
Var x,n:word;
Begin clrscr;
Writeln(vvedi ocenki);
Readln(x);
N:=0;
While x=5 do begin n:=n+1;
Writeln(vvedi ocenki);
Readln(x);
End;
Writeln(imeyut 5,n,uchenikov);
Readln;
End.
9. Описание: Вычислить наибольший общий делитель двух натуральных чисел А и В, использую для этого алгоритм Евклида. Будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба числа не станут равными.
Program nod;
Uses crt;
Var a,b:integer;
Begin clrscr;
Writeln(vvedi 2 chisla);
Readln(a,b);
While a<>b do if a>b then a:=a-b else b:=b-a;
Writeln(nod=,a);Readln;
End.
10.Описание: Программа подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+…+1/N
Program S;
Uses crt;
Var s:real;n:integer;
Begin clrscr;
S:=0; N:=0;
While n<1000 do begin N:=n+1;
S:=s+1/n;
End;
Writeln(s);
Readln;
End.
11.Описание:Имеется четыре (A, B, C, D) числа. Необходимо ответить на вопрос:«Правда ли что все среди этих чисел есть равные?»Ответ вывести в виде текста:«Правда», или «Неправда».
Program z1;
var a,b,c,d:integer; {описываем имеющиеся переменные}
begin writeln('vvedite chislo a'); {вводим все числа по очереди}
readln(a);
writeln('vvedite chislo b');
readln(b);
writeln('vvedite chislo c');
readln(c);
writeln('vvedite chislo d');
readln(d);
if (a=b)or (a=c) or (a=d)or (b=c) or (b=d) or (d=c) then writeln ('pravda') else writeln ('nepravda');
readln;
end.
12.Описание: Составить программу вычисления и выдачи на печать суммы (произведения) N элементов бесконечного ряда. Оформить проверку задания. Y=(-512)*256*(-128)*64…… Общая формула имеет вид: y=±210-i
program z2;
var i,j,zn,n:integer; s:real;
begin writeln;
writeln('vvedite kolichestvo elementov ryada');
write('N='); {вводим количество элементов ряда}
readln(n);
s:=1;
for i:=1 to n do begin zn:=1;
for j:=1 to i+1 do begin zn:=zn*(-1);
end;
s:=s*(-zn)*(exp((10-i)*ln(2))); {вводим формулу}
end;
writeln('s=',s:4:2);
readln;
end.
13.Описание: Дана функция Y=1-[x-2]^2/10 вычислить и напечатать значения этой функции для последовательных значений x=c,x=c+(b+1), x=c+2(b+1),x=c+3(b+1) где а=1; b=9;с=2. Считать до тех пор пока сумма Y+6 не станет отрицательной.
program zad3;
const b=9; c=2;
var x,n:integer; f,s:real; function y(x:integer):real;
begin y:=1-(sqr(x-c)) / (b+1);
end;
begin writeln('Y=1-[x-2]^2/10');
n:=0;
repeat x:=c+n*(b+1);
inc(n);
f:=y(x);
write('x',n,'= ',x,' ');
writeln('y',n,'= ',f:6:5)
until f+6<0;
readln
end.
14.Описание: Имеется массив А из N произвольных чисел (A(n)), среди которых есть положительные, отрицательные и равные нулю. Напечатать только те числа из массива которые больше предыдущего числа.
program z4;
uses Crt;
const MAX = 100;
var mas : array[1..MAX] of integer; n,i : byte; k,p: integer;
begin ClrScr;
Write('N:=');
Readln(n);
for i:=1 to n do begin Write('vvedite ',i,' element massiva:>');Readln(mas[i]); end;
begin k := 0;
for i := 1 to n do begin if mas[i]>mas[(i-1)] then writeln (mas[i]); end;
readln; end;
end.
15.Описание: Составить программу вычисления числового ряда для известного числа членов ряда N. Y=(7+35/1)(8-3-4/2)(9+33/3)….
program z5;
var i,j,zn,n:integer; s:real;
begin writeln;
writeln('vvedite kolichestvo elementov ryada');
write('N=');
readln(n);
s:=1;
for i:=1 to n do begin zn:=1;
for j:=1 to i+1 do begin zn:=zn*(-1);end;
s:=s*((6+i)+exp((zn*(6-i))*ln(3))/i);end;
writeln('s=',s:4:2);
readln;
end.
Раздел : Массивы
1 Описание: Найти, сколько раз каждый элемент встречается в массиве
Дополнительных массивов не создавать.
Program msv;
Const Size=10; Diap=10;
var a: array [1..Size] of integer; i,n,k,j:integer;
begin writeln;
repeat write('Введите размерность 1 массива (от 2 до ',Size,'):');
Read (n);
Until (n>1) and (n<=Size); Randomize;
a [1]:=Random(Diap);
Write ('A= ', a[1],' ');
For i: =2 to n do begin A[i]:=Random (Diap);
Write (a[i],' '); End;
writeln;
k:=0;
For i: =1 to n do if a[i]=0 then Inc(k);
If k>0 then writeln ('0: ',k);
For i: =1 to n-1 do if a[i]<>0 then begin K: =1;
For j: =i+1 to n do if a[i]=a[j] then begin A[j]:=0;
Inc (k); End;
writeln (a[i],': ',k); end;
end.
2. Описание: Объединить 2 упорядоченных массива по возрастанию.
Program msv;
const Size=10; Step=5;
var a,b:array [1..Size] of integer; c:array [1..2*Size] of integer; i,n1,n2,ia,ib,ic:integer;
begin writeln;
repeat write('Введите размерность 1 массива (от 2 до ',Size,'):');
read (n1);
until (n1>1) and (n1<=Size);
Randomize;
a[1]:=Random(Step);
write ('A= ',a[1],' ');
for i:=2 to n1 do begin a[i]:=a[i-1]+Random(Step);
write (a[i],' '); end;
writeln;
repeat
write('Введите размерность 2 массива (от 2 до ',Size,'):');
read (n2);
until (n2>1) and (n2<=Size);
b[1]:=Random(Step);
write ('B= ',b[1],' ');
for i:=2 to n2 do begin b[i]:=b[i-1]+Random(Step);
write (b[i],' ');
end;
writeln;
ia:=1; ib:=1;
write ('C= ');
for i:=1 to n1+n2 do begin if a[ia]<=b[ib] then begin c[i]:=a[ia];
if ia<n1 then Inc(ia) else begin a[n1]:=b[ib];
if ib<n2 then Inc (ib); end; end
else begin c[i]:=b[ib];
if ib<n2 then Inc(ib) else begin b[n2]:=a[ia];
if ia<n1 then Inc(ia); end; end;
write (c[i],' ');
end;
writeln;
end.
3. Описание: Дан массив чисел. Найти наибольшее.
Program msv;
Uses crt;
Var i,n,max:integer; a:array[1..100] of integer;
begin clrscr;
read(n);
for i:=1 to n do read(a[i]); {ввод чисел в массив}
max:=a[1];
for i:=2 to n do if a[i] > max then max:=a[i]; {сравнивается с уже найденным наибольшим,}
write('maksimalnoe chislo = ',max);
readln;
end.
4. Описание: Найти сумму элементов числового массива
Program msv;
uses crt;
Var i,n,s:integer; a:array[1..1000] of integer;
begin clrscr;
read(n);
for i:=1 to n do read(a[i]); {ввод значений в массив}
s:=0;
for i:=1 to n do s:=s+a[i];
write('Summa = ',s); readln;
readln;
end.
5. Описание: Дан числовой массив. Вычислить сумму элементов,имеющих четное значение индекса. Вычислительную часть организовать в виде функции
Program msv;
Uses crt;
type mas=array[1..100] of integer;
Var a:mas; i,n:integer; function calc(b:mas;m:integer):integer;
var i,s:integer;
begin s:=0;
for i:=1 to m do;
if i mod 2=0 then s:=s+b[i];
calc:=s;
end;
begin clrscr;
read(n);
for i:=1 to n do read(a[i]);
write('Сумма каждого второго элемента = ',calc(a,n));
readln;
readln;
end.
6. Описание: Дан массив символов. Вычислить, сколько в нем элементов 'a'
Program msv;
Uses crt;
Var i,n,s:integer; a:array[1..100] of char;
begin clrscr;
readln(n); {Объявление а:array[1..1000] of char означает,}
for i:=1 to n do readln(a[i]);
s:=0;
for i:=1 to n do readln(a[i]);
s:=0;
for i:=1 to n do if a[i]='a' then s:=s+1;
write('Kolichestvo elementov ravnyh "a" = ',s);
readln;
end.
7. Описание: Дан двумерный массив целых чисел размерностью NxN. Найти сумму его элементов
Program msv;
Uses crt;
Var s,i,j,n:integer; a:array[1..10,1..10] of integer;
begin clrscr;
read(n);
for i:=1 to n do for j:=1 to n do read(a[i,j]);
for i:=1 to n do for j:=1 to n do s:=s+a[i,j];
write('Сумма элементов = ',s);
readln;
readln;
end.
8. Описание: По заданному массиву X[7] сформировать массив Y, элементы которого вычисляются по формуле
Y[i]= |X[i]-B|, где B - максимальный элемент массива X
program msv;
const Size=7; { Размерность массива }
var x:array [1..Size] of real; b:real; i:integer;
begin writeln;
writeln ('Жду ввода элементов массива размерностью ',Size,':');
for i:=1 to Size do begin write ('x[',i,']=');
readln (x[i]); end;
b:=x[1];
for i:=2 to Size do if x[i]>b then b:=x[i];
writeln ('Максимальный элемент=',b:10:3);
writeln ('Исходный Новый');
writeln ('массив массив');
for i:=1 to Size do begin write (x[i]:10:4);
x[i]:=abs(x[i]-b);
writeln (x[i]:10:4); end;
end.
9. Описание: Найти максимальный элемент в линейном массиве.
Вывести результат на экран
program msv;
uses crt;
const
nn = 10; var max, i: integer; a: array[1..nn] of integer; begin clrscr;
for i := 1 to nn do a[i] := random(500);
max := a[1];
for i := 2 to nn do if a[i] > max then max := a[i];
for i := 1 to nn do write(a[i], ' '); writeln;
writeln('Max = ', max);
readkey;
end.
10. Описание: Отсев. Удалить в заданном массиве x(n) лишние (кроме первого) элементы так, чтобы оставшиеся образовывали возрастающую последовательность(за один просмотр массива)