Индивидуальное задание №6(Pascal)
Условие задания: Дано натуральное число Р. Найдите все натуральные числа, не превосходящие Р, которые нельзя представить в виде суммы 2 простых чисел
Текст программы:
Program LR_6_24;
{Дано натуральное число Р. Найдите все натуральные числа, не превосходящие Р, которые нельзя представить в виде суммы 2 простых чисел; Усик М, гр. 13411}
Uses
Crt;
var
mass:array [1...1000] of integer
p, index_prost, z, j, index:integer;
flagg:boolear;
begin
clrscr;
index_prost:=1;
mass[1]:=2;
write (‘введите натуральное число Р’);
readln (P);
for j:=1 to p do
begin
if ((2 mod mass [j])<>0) then
inc (index);
if (index=index_prost) then
begin
inc(index_prost);
mass [index_prost]:=z;
end;
end;
end;
writeln (mass[1]);
for z:=1 to index_prost-1 do
begin
if (mas[z] + mass[1]=mass [z+1] then
continue
else
writeln (mass[z+1]);
end;
end.
Индивидуальное задание №7 (Pascal)
Условие задания: Дан массив А, состоящий из n натуральных чисел. Найдите наибольший общий делитель элементов массива
Текст программы:
Program L_8_24;
{ Дан массив А, состоящий из n натуральных чисел. Найдите наибольший общий делитель элементов массива, Усик М. }
uses
crt;
function NOD (a, b:integer);
begin
while a<>b do
if a>b then a:=a-b else b=:b-a;
NOD:=a;
end;
var
a:array[1..100] of integer;
n:byte;
k:integer;
begin
cltscr;
write (‘VVedite kol elementov n=’);
readln(n);
writeln (‘Vvedite element massiva;’);
for i:=1 to n do
begin
write (‘a[‘i,’]=’);
readln(a[i]);
end;
clrscr;
writeln(‘Massiv:’);
for i:=1 n do
write (a[i], ‘ ‘);
writeln;
k:=NOD (a[1], a[2]);
for:=3 to n do k:=nd (k, a [i]);
writeln (‘obchiy NOD vseh elementov =’, k);
readln
end.
Примеры
1) Введите кол.:1
Введите элементы:2
Массив:2
2) Введите кол элементов:0
Общий НОД=0
3) Введите кол элементов:-2
Программа завершена
Индивидуальное задание №8 (Pascal)
Условие задания: Дана матрица А, имеющая 30 строк и 10 столбцов, содержащая оценки группы за первый семестр. Определите средний балл студентов группы по каждому предмету
Текст программы:
program L8_24;
{ Дана матрица А, имеющая 30 строк и 10 столбцов, содержащая оценки группы за первый семестр. Определите средний балл студентов группы по каждому предмету Усик М.}
uses
crts;
type
matrix=array [1..30, 1..10] of real;
stroka = string;
var
a, b:integer;
m, n:integer;
flaf:Boolean;
procedure MatrixIn(var a:matrix; file name:stroke; var m, n;integer);
var
i, j:integer;
txt:text;
begin
assign (txt, filename);
reset (txt);
readln(txt, m, n);
for i:=1 to m do
begin
for j:=1 to n do
read (txt, a [i, j];
readln(txt);
end;
close (txt);
end;
procedure MatrixOut(a:matrix; filename; stroka; m, n:integer; title stroka; var flag:boolean);
var
i, j:integer;
txt:text;
begin
assign (txt, filename);
if flag then
rewrite (txt);
else
append(txt);
writeln (txt, title)
for i:=1 to n do
write (txt, a [I,j]:8:2);
writeln(txt);
end;
procedure average (a:matrix; m, n:integer);
var
I, j:integer;
s:real;
begin
for j:=1 to n do
begin
s:=0
for i:=1 to m do
s:=s+a[I, j];
s:=s/m;
b[1,j]:=s;
end;
end;
begin
clrscr;
MatrixIn(a, ‘matrix.txt’, m, n);
flag:=true;
MatrixOut(a, ‘matrixOut.txt’, m, n ‘ Ocenki gruppy za 1 semestr: ‘, flag);
Average (a, b, m, n);
flag:=false;
MatrixOut (b, ‘:matrixOut.txt, 1; n’Sred bal ctudentov po kajdomu predmetu:’, flag);
readkey;
end.
Индивидуальное задание №9 (Pascal)
Условие задания:. Напишите программу, удваивающую каждый символ в заданном тексте.
Текст программы:
program L_9_6;
{. Напишите программу, удваивающую каждый символ в заданном тексте. Усик М..}
uses
crt;
var
st:string[to];
procedure ydv (var st:string);
var
i:=integer;
begin
i:=1;
whiele <=length (st) do
begin
insert (st[i], st, i+1);
end;
end;
begin
clrscr;
writeln (‘Vvedite stroky’);
readln (st);
ydv (st);
writeln (st);
readkey;
end.
Примеры
1. вводим var выводит vvaarr
2. вводим р выводит рр
Индивидуальное задание №10 (Pascal)
Условие задания: Реализуйте поразрядную сортировку
Текст программы:
program L_10_6;
{ Реализуйте поразрядную сортировку, Усик М.}
uses
crt;
type
matr:array [1..10, 1..10] of real;
stroka:string[30];
var
a:matr;
I, j, m, n:integer;
flag:Boolean;
procedure vvod (var a:matr; namefile:stroka: var m, n:integer);
var
I, j:integer;
fin:txt;
begin
assign(fin, namefile);
reset (fin);
readln(fin, m,n)
for i:=1 to n do
read (fin, m,n);
readln(fin, m,n);
for i:=1 to n do
read (fin, a[I,j]);
readln(fin);
end;
close(fin);
end;
procedure vivod (namefile:stroka; a:matr; m, n:integer; var:stroka; var flag; Boolean);
var
I, j:integer;
fout:text;
begin
assign(fout, namefile);
if flag then
rewrite(fout);
else
append(fount);
writeln (fout, zag);
for i:=1 to m do
begin
for j:=1 to n do
write (fout, a[I, j]:8:2);
writeln(fount);
end;
if namefile=’con’ then
readkey
else
close(fout);
end;
procedure radSort (k, l, r:integer);
var
I, j, t:integer;
begin
if(l>=r) or (k=0) then Exit;
I:=1;
j:=n;
while (i<=j) do
begin
if((A[i] and k) <>0) then inc(i)
else if ((A[j] and k)=0) then dec (j)
else
begin
t:=A[i]; A[i]:=A[j}; A[j]:=t;
inc (i);
dec[j];
end;
end;
radSort(k shr 1, l, j);
radSort(k shr 1, I, r);
end;
var I, k, j, t, n:integer;
begin
readln(n);
k:=1;
for i:=1 to n do
begin
read (A[i]);
l:=e shr 1;
inc (t);
end;
if (t>k) then k:=t;
end;
radSort (1 shl (k-1), l, n);
end.
Индивидуальное задание №11 (Pascal)
Условие задания: Программа нахождения НОД и НОК алгоритмом Евклида
Текст программы:
program L11_24;
{Усик М}
program nodnok;var a,b:longint;
function NOD(x,y:longint):longint;
begin
if x<>0 then NOD:= NOD(y mod x,x) else NOD:= y;
end;
function NOK(x,y:longint):longint;
begin
NOK:= (x div NOD(x,y)) * y;
end;
Begin
Write('Введите a и b: ');
Readln(a,b);
Writeln('НОД ',a,' и ',b,' = ', NOD(a,b));
Writeln('НОК ',a,' и ',b,' = ', NOK(a,b));
Readln;
End.