Паскаль и массивы
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Паскаль и массивы - 2008-11-24 17:56:36.536666
|
|
|
Basher2008
Сообщений: 148
Оценки: 0
Присоединился: 2008-01-27 17:28:11.896666
|
Дан двумерный массив G[2,3], вычислить сумму отрицательных элементов матрицы. - это то же самое, что и Дан двумерный массив G[2,3], вычислить сумму отрицательных элементов МАССИВА?
|
|
|
RE: Паскаль и массивы - 2008-11-24 18:12:07.996666
|
|
|
linuxoid
Сообщений: 87
Оценки: 0
Присоединился: 2007-04-15 11:11:15.030000
|
Конечно.
|
|
|
RE: Паскаль и массивы - 2008-11-24 18:23:38.046666
|
|
|
Fracta1L
Сообщений: 2280
Оценки: 0
Присоединился: 2004-05-07 13:53:50
|
оффтоп Basher2008, а в каком учебном заведении вы учитесь? так, из интереса
|
|
|
RE: Паскаль и массивы - 2008-11-24 18:54:27.433333
|
|
|
Basher2008
Сообщений: 148
Оценки: 0
Присоединился: 2008-01-27 17:28:11.896666
|
Дан массив вещественных чисел A[11] , вычислить сумму положительных элементов массива program mas1; const n=11 var y:array[1..n] sum, i:byte; begin for i:=1 ton do read ( y ); sum:=0; for i: = 1 ton do if y > 0 then sum:= sum+ y ; writeln (sum); end. Так вот, большая просьба поправьте что сдесь не так, и не надо ли сделать sum : real? Желательно с минимальным использованием системных ресурсов Оффтоп неважно где я учусь. я понимаю, что это : quote:
Дан двумерный массив G[2,3], вычислить сумму отрицательных элементов матрицы. - это то же самое, что и Дан двумерный массив G[2,3], вычислить сумму отрицательных элементов МАССИВА? вопрос из раздела 1-го класса, просто мы поспорили с одним человеком насчёт этого.
|
|
|
RE: Паскаль и массивы - 2008-11-24 19:00:31.326666
|
|
|
Fracta1L
Сообщений: 2280
Оценки: 0
Присоединился: 2004-05-07 13:53:50
|
вопросов больше не имею
|
|
|
RE: Паскаль и массивы - 2008-11-24 19:21:52.290000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: Basher2008 Дан массив вещественных чисел A[11] , вычислить сумму положительных элементов массива (\list -> length $ filter (>0) list). я балдею с ваших задач на самом деле quote:
ORIGINAL: Basher2008 Так вот, большая просьба поправьте что сдесь не так "здесь" ты написал неправильно quote:
ORIGINAL: Basher2008 и не надо ли сделать sum : real? понятия не имею. а надо? quote:
ORIGINAL: Basher2008 Желательно с минимальным использованием системных ресурсов за время написания этого ответа системных ресурсов не использовал quote:
ORIGINAL: Basher2008 неважно где я учусь. я понимаю, что это вопрос из раздела 1-го класса, просто мы поспорили с одним человеком насчёт этого. правильно что не признаёшься - обоих стоило бы отчислить
|
|
|
RE: Паскаль и массивы - 2008-11-24 19:39:13.780000
|
|
|
Basher2008
Сообщений: 148
Оценки: 0
Присоединился: 2008-01-27 17:28:11.896666
|
это вот поточнее: program mas1; const n=11; var y:array[1..n] of integer; sum, i:byte; begin for i:=1 to n do read ( y ); sum:=0; for i:= 1 to n do if y > 0 then sum:= sum+y ; writeln (sum); end. Но выделяет слово then на этой строке: if y > 0 then sum:= sum+y ; и пишет ошибку : error 26 type is mismatch. Что можно сделать в этом случае? quote:
(\list -> length $ filter (>0) list) Это что то не из этой оперы. Может так и можно решить эту задачу, но мне нужно решить именно таким вот "простым способом".
|
|
|
RE: Паскаль и массивы - 2008-11-24 19:46:04.500000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: Basher2008 var y:array[1..n] of integer; sum, i:byte; if y > 0 then sum:= sum+y ; type mismatch detected. какой тип ты ожидаешь получить, суммируя значения типа integer? я думаю, ты хочешь получить тот самый integer, ну или по крайней мере чего-нибудь такое же или более вместительное. объяви sum как integer и посмотри что получится а заодно почитай что-нибудь по теории типов. впрочем нет, не надо, это я сгоряча P.S. кстати, на что спорили-то?
|
|
|
RE: Паскаль и массивы - 2008-11-24 19:48:50.140000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: Basher2008 if y > 0 then sum:= sum+y ; кстати, тебя не смщуает тот факт, что y - массив? что, по-твоему, должна сделать операция (y > 0)? я думаю ты хотел написать y > 0 тоже, кстати, type mismatch
|
|
|
RE: Паскаль и массивы - 2008-11-24 20:00:35.473333
|
|
|
Basher2008
Сообщений: 148
Оценки: 0
Присоединился: 2008-01-27 17:28:11.896666
|
quote:
я думаю ты хотел написать y > 0 Да!!! Вот это и был ответ! Всё заработало, спасибо, ++
|
|
|
RE: Паскаль и массивы - 2008-11-24 20:04:21.663333
|
|
|
Herm
Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
|
Basher2008, обьясни ну зачем тебе тип:байт?? Для чего? Вот так…
program mas1;
Uses crt;
var y:array[1..50] of integer;
Sum,I,n:integer;
E:real;
begin
clrscr;
E:=0.000001;
Readln(n); {tut vvedi 11}
for I:=1 to n do
Readln(y[i]);
{Sum obnulyat' ne nado ibo pascal obnulaet peremeennie}
Writeln;
for I:= 1 to n do
if y[i]>E then
sum:=sum+y[i];
writeln (sum);
end.
как видишь я сравниваю не с нулем а с переменной эпсилон. Так как значение "0" в Паскале не присутствует. ) заменяется на очень малое число…так что по идее нужно делать так…будет видно что ты это понимаешь. \\блин, пока писал, уже все разрешилось =\
|
|
|
RE: Паскаль и массивы - 2008-11-24 20:11:27.026666
|
|
|
Basher2008
Сообщений: 148
Оценки: 0
Присоединился: 2008-01-27 17:28:11.896666
|
Теперь ещё один массив, на этот раз двумерный: Дан двумерный массив G[2,3], вычислить сумму отрицательных элементов матрицы. Вот то, что я могу сделать: program matrica; mas :array[1..2, 1..3] of real; sum: real; i, n, m,j: integer; begin n:=2; m:=3; write(‘ВВЕДИТЕ ЭЛЕМЕНТЫ МАССИВА:’); for i: = 1 to n do for j: = 1 to m do readln(mas); sum: = 0; for i: = 1 to n do for j: = 1 to m do if mas < 0 then sum:= mas[i,j]+sum; end. А вот что сдесь не так, не знаю
|
|
|
RE: Паскаль и массивы - 2008-11-24 20:17:32.950000
|
|
|
Basher2008
Сообщений: 148
Оценки: 0
Присоединился: 2008-01-27 17:28:11.896666
|
Herm, может так и лучше, не знаю), но за старания тебе ++ :)
|
|
|
RE: Паскаль и массивы - 2008-11-24 20:21:27.543333
|
|
|
Herm
Сообщений: 218
Оценки: 0
Присоединился: 2008-08-15 21:08:09.063333
|
Для начала…у тебя нету Var. ты опять не правильно обозначал массив. Пробелов столько тоже не нужно… Вот как должно быть…
program matrica;
var mas :array[1..2, 1..3] of real;
sum: real;
i, n, m,j: integer;
begin
n:=2;
m:=3;
for i:=1 to n do
for j:=1 to m do
readln(mas[i,j]);
sum:=0;
for i:=1 to n do
for j:=1 to m do
if mas[i,j]<0 then sum:=mas[i,j]+sum;
Writeln(Sum:2:2);
end.
если ошибся, не ругай.
|
|
|
RE: Паскаль и массивы - 2008-11-24 20:35:16.440000
|
|
|
Basher2008
Сообщений: 148
Оценки: 0
Присоединился: 2008-01-27 17:28:11.896666
|
Классно:) Всё работает), спасибо большое, ты мне очень помог, ++
|
|
|
|
|