Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите пожалуйсто

Автор: Boom-Box 1.06.2007 19:07

Помогите пожалуйсто очень надо(завтро зачет)
program jjj;
var i,j,k,n,m: word;
A: array [1..n,1..m] of real;
L:array[1..m]of word;
begin
read(n,m) ;
for k:=1 to m do
begin
i:=1;
j:=1;
while i<=n and j<=L[k] do
begin
if A[k,i]<>0 then
begin
T[k,j]:=A[k,i];
j:=j+1;
i:=i+1;
end;
else
i:=i+1;
end;
end;
writeln(T);
Writeln(A);
End.

Автор: Ozzя 1.06.2007 19:15

Какие ошибки-то?
Синтаксические компилятор проверит.
А семантические...
Текст задания где?

Автор: Артемий 1.06.2007 19:16

n должна быть константой

const n=6

переменные нельзя использовать при назначении размера массива
(и m также..)
Цитата
Синтаксические компилятор проверит.

ну да...

Автор: Boom-Box 1.06.2007 19:18

Цитата(Ozzя @ 1.06.2007 16:15) *

Какие ошибки-то?
Синтаксические компилятор проверит.
А семантические...
Текст задания где?


ЗАДАНИЕ
Строки матрици A(m,n) заполнены не полностью: в массиве L(m) указано количество элементов в каждой строке. Переслать элементы матрицы построчно в начало одномерного массива T(m*n) подсчитать их количество.

Че за Ошибка Error 50: do expected.

Автор: volvo 1.06.2007 19:23

Цитата
n должна быть константой
Не только n... m тоже...

Да и массив распечатать одним оператором WriteLn(T) тебе вряд ли удастся - надо это делать поэлементно (причем заметь, T вообще не описано, а используется)...

Автор: Boom-Box 1.06.2007 19:33

program jjj;
uses crt;
const n=10;m=10;
var i,j,k: word;
A: array [1..n, 1..m] of word;
L:array[1..m]of word;
begin
clrscr;
randomize;
for k:=1 to 10 do
begin
i:=1;
j:=1;
while i<=10 and j<=L[k] do {‘Сдесь ошибку выдает Error 50: Do expected’}
begin
if A[k,i]<>0 then
begin
T[k,j]:=A[k,i];
j:=j+1;
i:=i+1;
end;
else
i:=i+1;
end;
end;
writeln(T); {А КАК ЭТО ВЫВЕСТИ}
writeln(l);
Writeln(A);

End.

Автор: Артемий 1.06.2007 19:34

Цитата
while i<=10 and j<=L[k] do {‘Сдесь ошибку выдает Error 50: Do expected’}

А ты в скобки возьми между and..

Добавлено через 1 мин.
Цитата
writeln(T); {А КАК ЭТО ВЫВЕСТИ}

А может ты опишешь,что озночает T? Или компилятор уже мысли читает? smile.gif

Автор: Boom-Box 1.06.2007 20:10

Люди кто нибуть может помочь (сделать чтобы эта программы работала) Пожалуйсто
ЧТОБЫ ОНА НЕ ВЫВОДИЛА НУЛИ

program jjj;
uses crt;
const n=10;m=10;
var i,j,k: word;
A: array [1..n, 1..m] of word;
L:array[1..m]of word;
T: array [1..n, 1..m] of word;
begin
clrscr;
randomize;
for k:=1 to 10 do
begin
i:=1;
j:=1;
while (i<=10) and (j<=L[k]) do
begin
writeln(a[k,i]);
if A[k,i]<>0 then
begin
T[k,j]:=A[k,i];
j:=j+1;
i:=i+1;
end;

end;
end;
End.

Автор: compiler 1.06.2007 23:15

Цитата(Boom-Box @ 1.06.2007 16:10) *

Люди кто нибуть может помочь (сделать чтобы эта программы работала) Пожалуйсто
ЧТОБЫ ОНА НЕ ВЫВОДИЛА НУЛИ

работает и не выводит нули
program jjj;
uses crt;
const
n=10;
m=10;
var
i,k: word;
A: array [1..n, 1..m] of word;
L:array[1..m]of word;
T: array [1..n, 1..m] of word;
begin
clrscr;
randomize; //так массив случайных чисел ты не создашь smile.gif, надо циклами...
for i:=1 to n do
for k:=1 to m do
t[i,k]:=random(10);
for i:=1 to n do
for k:=1 to m do
a[i,k]:=random(10);
for i:=1 to n do
l[i]:=random(10);

i:=1;//инициалицируем ДО цикла
for k:=1 to n do begin
while (i<=L[k]) do begin
writeln(a[k,i]);
(*if A[k,i]<>0 then begin*) //Ты уверен что тебя нужно это условие?
T[k,i]:=A[k,i]; //зачем нам j ?
inc(i);
(*end;*)
end;
end;
readln;
read;
End.


такая подходит? smile.gif

Автор: мисс_граффити 1.06.2007 23:33

А ПРАВИЛА прочитать - не судьба???
Просить о помощи и проявлять такое вопиющее неуважение к отвечающим....
 ! 
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [cоde=pas] ... [/cоde].



Тема закрыта.