Показать сообщение отдельно

  #19  
Старый 12.12.2006, 14:32
VampiRUS
Участник форума
Регистрация: 31.12.2005
Сообщений: 231
Провел на форуме:
1106266

Репутация: 366
Отправить сообщение для VampiRUS с помощью Yahoo
По умолчанию

на данный момент решены 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

Последний раз редактировалось VampiRUS; 12.12.2006 в 17:03..