Страница 1 из 1
До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 19 янв 2008, 19:13
ELVIN
Ребят, кому не сложно, есть 3 задачи, с решением. но решение с ошибками... Не знаю, что делать. Остался день до экзамена. Выручайте. 288-180-481. Постучите плиз!
Re: До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 19 янв 2008, 19:24
BHy4ok
Это надо прежде всего тебе, поэтому выкладывай условия задач и сам код.
Re: До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 19 янв 2008, 19:49
ELVIN
задача198. Даны натуральные числа n, b0...,bn. Вычислить f(b0)+f(b1)+...+f(bn), где
f(x)= 1) x в квадрате, если x кратно 3; 2) x, если х при делении на 3 дает остаток 1; 3) x/3 в остальных случаях.
program N198;
const max=100;
type matr=array [1..max] of integer;
var
mas,f:matr;
begin
write('Vvedite n');
readln(b);
end;
s:=0;
for i:=0 to n do begin
if(masmod3)=0 then begin
f:=mas*mas
else
if(masmod3)=1 then f:=mas
else
f:=mas div3;
writeln(f[i]);
for i:=1 to n do
s:=s+f[i];
writeln(s);
end;
end.
Re: До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 19 янв 2008, 21:03
drummer
Кто вас код так учит писать?
Код: Выделить всё
var a,f : array[0..100] of longint;
i,s,n : longint;
procedure input;
begin
readln(n);
for i := 0 to n do
read(a[i]);
end;
procedure done;
begin
s := 0;
for i:=0 to n do
begin
if a[i] mod 3=0
then f[i] := sqr(a[i])
else
if a[i] mod 3=1
then f[i] := a[i]
else f[i] := a[i] div 3;
inc(s,f[i]);
end;
end;
procedure output;
begin
writeln(s);
end;
begin
input;
done;
output;
end.
Это если в задачи под x/3 подразумевалось целая часть.
Re: До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 19 янв 2008, 21:20
MOTOCoder
Вот вариант с одним массивом:
[syntax='delphi']
program N198;
const max=50;
type matr=array [1..max] of integer;
var
mas:matr;
s:integer;
i:integer;
begin
{----секция заполнения-------}
{ можно заменить на
for i:=1 to max do
readln(mas);
}
randomize;
writeln('SrcData');
for i:=1 to max do
begin
mas:=random(50);
write(mas,' ');
end;
{-------секция заполнения------}
writeln;
writeln('Result'); {можно убрать}
s:=0;
for i:=1 to max do
begin
case (mas mod 3) of
0:mas:=sqr(mas);
1:mas:=mas;
else mas:=mas div 3;
end;{case}
write(mas[i],' '); {можно убрать}
end;
writeln;
for i:=1 to max do
s:=s+mas[i];
writeln('Sum ',s);
readln;
end.
[/syntax]
Re: До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 19 янв 2008, 21:42
drummer
Вариант без массива :
Код: Выделить всё
var
i,s,n,x : longint;
procedure done;
begin
readln(n);
s := 0;
for i := 0 to n do
begin
read(x);
case x mod 3 of
0: s := s + x*x;
1: s := s + x;
2: s := s + x div 3;
end;
end;
writeln(s);
end;
begin
done;
end.
Re: До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 20 янв 2008, 09:39
ELVIN
Большое спасибо! Вот задача 2.
Дана деийствительная матрица размера n*18. найти значение наибольшего по модулю элемента матрицы, а так же индексы какого нибудь элемента с найденным значением модуля. (При решении использовать процедуры)
Помогите пожалуйста.
Re: До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 20 янв 2008, 12:10
MOTOCoder
Можно примерно так:
[syntax='delphi']
program matr;
const
N=20;
N0=18;
var m:array[1..N]of array[1..N0]of real;
i,j:integer;
max:real;
maxi,maxj:integer;
procedure Init;
begin
randomize;
for i:=1 to N do
for j:=1 to N0 do
m[i,j]:=random(100);
end;
procedure display;
begin
for i:=1 to N do
begin
writeln;
for j:=1 to N0 do
write(m[i,j]:2:0,' ');
end;
writeln;
end;
procedure findmax;
begin
for i:=1 to N do
for j:=1 to N0 do
if abs(m[i,j])>max then max:=abs(m[i,j]);
end;
procedure FindElement;
begin
for i:=1 to N do
for j:=1 to N0 do
begin
if abs(m[i,j])=max then
begin
maxi:=i;
maxj:=j;
end;
end;
end;
begin
init;
display;
findmax;
findelement;
writeln('Max = ',max:0:5);
writeln('Положение элемента ',maxj,'*',maxi);
readln;
end.
[/syntax]
Re: До экзамена 1 день... Горю. Плиз, хелп!
Добавлено: 20 янв 2008, 17:08
ELVIN
Большое всем спасибо, выручили!
