на данный момент решены 3,4,5,10,11,12? или ещё какие-то? Попытаюсь вспомнить паскаль, мож что получится.
насколько я понял седьмое задание(как-то там не по русски написано):
Код:
uses crt;
const N=5;M=5;
var
Arr:array[1..N,1..M] of integer;
a,b,i,j,sum:integer;
begin
clrscr;
Randomize;
for i:=1 to N do
for j:=1 to M do
Arr[i,j]:=random(256);
repeat
write('vvedite a:');
readln(a);
until((a>0 )and(a<M));
repeat
write('vvedite b:');
readln(b);
until((b>a)and(b<=M));
sum:=0;
for i:=1 to N do
for j:=a to b do
sum:=sum+Arr[i,j];
write('summa:',sum,',kol-vo elementov:',(b-a+1)*N);
readln;
end.
шестое вообще как будто с английского на русский плохим переводчиком переводили, нихера немогу понять к какому месту чётность и нечетность применить.
да и 2 знаю вроде как делать, только постановка задачи опять некоректная:
выбрать учащихся, не допущенных к сдаче следующего экзамена в связи с получением неудовлетворительной оценки по предыдущему экзамену.
а потом уже :
Выдать на экран список абитуриентов, удачно сдавших все экзамены.
и непонятно данные о студентах имеются или их надо сначало вводить.
в общем преподам надо учиться правильно составлять предложения, не теряя логической связи с предыдущими.
вобщем сделал 2 без недопущеных:
Код:
uses crt;
const N=4;
type
Student=record
name:string;
inf,math,eng:integer;
end;
var
i:integer;
arr:array[1..N] of Student;
begin
clrscr;
for i:=1 to N do begin
write('vvedite FIO:');
readln(arr[i].name);
write('otsenka po informatike:');
readln(arr[i].inf);
write('otsenka po matematike:');
readln(arr[i].math);
write('otsenka po angliskomu:');
readln(arr[i].eng);
end;
writeln('otlichniki:');
for i:=1 to N do
if((arr[i].inf=5)and(arr[i].math=5)and(arr[i].eng=5))then
writeln(arr[i].name);
readln;
end.
думаю принцип понятен(если надо будет сделать с нудопущенымию).
восьмая, получилось как-то по извращенному, но работает(вроде

):
Код:
const K=5;
N=5;
M=N+K;
var
f,kof,i,j,l:integer;
arr1:array[1..N] of integer;
arr2:array[1..K] of integer;
result:array[1..M] of integer;
begin
{массивы отсортированы по убыванию}
for i:=1 to N do
arr1[N-i+1]:=i*3;
for i:=1 to K do
arr2[K-i+1]:=i*2;
{раскоментить если надо по возрастанию
for i:=1 to N do
arr1[i]:=i*3;
for i:=1 to K do
arr2[i]:=i*2;
}
f:=arr1[1];
i:=2;
while((f=arr1[i])and(i<N))do
inc(i);
kof:=(f-arr1[i])*(-1);
l:=1;
i:=1;
j:=1;
while(l<=M)do begin
while((arr1[i]*kof<=arr2[j]*kof)and(i<=N))do begin
result[l]:=arr1[i];
inc(l);
inc(i);
end;
while((arr2[j]*kof<=arr1[i]*kof)and(j<=K))do begin
result[l]:=arr2[j];
inc(l);
inc(j);
end;
if((i>N)or(j>K))then break;
end;
if(i>N)then
for i:=j to K do begin
result[l]:=arr2[j];
inc(l);
end;
if(j>K)then
for j:=i to N do begin
result[l]:=arr1[j];
inc(l);
end;
for i:=1 to M do
write(result,' ');
readln;
end.
9 в принципе тоже самое только запись начинать с конца массива result