IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Сумма элементов матрицы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Всем привет!
Вот решаю такую задачу:

Дана действительная квадратная матрица порядка п. найти наибольшее из значений элементов, расположенных в заштрихованной области матрицы.
(см. присоединенное изображение)

Вот что я сделал:
Код

program matrix;
uses crt;
var a: array[1..10,1..10] of integer;
s,r: integer;
i,j,n: integer;
begin clrscr; textcolor(lightgreen);  randomize;
write(' Input razmer matrix> ');
readln(n);
for i:=1 to n do
begin
for j:=1 to n do begin
a[i,j]:=random(10);
write(a[i,j]:5,' ');
end;
writeln;

end;
write(' A: ');
s:=0;
for i:=1 to n do
for j:=1 to n do s:=s+a[i,j];
writeln(s);

write(' B: ');
s:=0;
for i:=1 to n do
for j:=1 to i do s:=s+a[i,j];
writeln(s);

write(' V: ');
s:=0;
for i:=1 to n div 2 + n mod 2 do
for j:=1 to n-i+1 do s:=s+a[i,j];
writeln(s);

write(' G: ');
s:=0;
for i:=n mod 2 + n div 2 to n do
for j:=n-i+1 to i do s:=s+a[i,j];
writeln(s);

write(' D: ');

write(' E:');

write(' J:');
s:=0;
for i:=1 to n div 2 + n mod 2 do
for j:=i to n-j+1 do s:=s+a[i,j];
writeln(s);

write(' Z: ');
s:=0;
for i:=1 to n div 2 + n mod 2 do
for j:=1 to n-j+1 do s:=s+a[i,j];
writeln(s);

write(' I: ');
s:=0;
for i:=1 to n do
for j:=1 to n-i+1 do s:=s+a[i,j];
writeln(s);

write(' K: ');
s:=0;
for i:=1 to n do
for i:=n-i+1 to n do s:=s+a[i,j];
writeln(s);

readln;
end.



У меня тут работает только B, G и I, в остальном баги….Помогите пожалуйста их исправить, а также дописать D и E.
Всем заранее благодарен. Goodbye;-)


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Вот решенная задача, может что-нибудь не верно, или всё o'key? smile.gif
Код

program z19;
uses crt;
var n,i,j,max:integer;
a:array [1..7,1..7] of integer;
z:byte;
begin
clrscr; textcolor(lightgreen); randomize;
repeat
write(' Vvedite razmernost(nechetnoe chislo)> ');
readln(n)
until odd(n)=true;
{writeln('vvedite elementi');}
for i:=1 to n do begin
for j:=1 to n do begin{read(a[i,j]);}
a[i,j]:=random(9);
write(a[i,j]:3,' ');
end;
writeln;
end;

writeln(' Menu (vibor cifry):');
repeat
writeln('1-a, 2-b, 3-c, 4-d, 5-e, 6-f, 7-g, 8-h, 9-i, 10-j');
readln(z);
case z of
1:begin
 for i:=1 to n do
 for j:=i to n do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
2:begin
 for i:=1 to n do
 for j:=1 to i do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
3:begin
 for i:=1 to ((n div 2)+1) do
 for j:=i to (n-i+1) do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
4:begin
 for i:=n downto ((n div 2)+1) do
 for j:=(n-i+1) to i do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
5:begin
 for i:=1 to ((n div 2)+1) do
 for j:=i to (n-i+1) do if a[i,j]>max then max:=a[i,j];
 for i:=n downto ((n div 2)+1) do
 for j:=(n-i+1) to i do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
6:begin
 for j:=1 to ((n div 2)+1) do
 for i:=j to (n-j+1) do if a[i,j]>max then max:=a[i,j];
 for j:=n downto ((n div 2)+1) do
 for i:=(n-j+1) to j do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
7:begin
 for j:=1 to ((n div 2)+1) do
 for i:=j to (n-j+1) do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
8:begin
 for j:=n downto ((n div 2)+1) do
 for i:=(n-j+1) to j do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
9:begin
 for j:=1 to n do
 for i:=1 to (n-j+1) do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;
10:begin
 for j:=1 to n do
 for i:=n downto (n-j+1) do if a[i,j]>max then max:=a[i,j];
 writeln('max=',max);max:=0;
 end;

end;

until readkey=#13;
readkey
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Ну, это может и не ошибка, но недочет по крайней мере:
a:array [1..7,1..7] of integer;
...
repeat
write(' Vvedite razmernost(nechetnoe chislo)> ');
readln(n)
until odd(n)=true;

Смотри, что ты делаешь: на нечетность ты проверяешь (хотя зачем = True добавлено, я так и не пойму, вполне можно обойтись и без него), а вот если я введу n = 9? Число нечетное, все по условию, но вот тут:
a[i,j]:=random(9);
могут быть проблемы...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 19.05.05 18:02)
а вот если я введу n = 9? Число нечетное, все по условию, но вот тут:
a[i,j]:=random(9);
могут быть проблемы...

Это генерация случайных чисел от 0 до 9. Не буду же я вместо 9 вводить 100, на бумажке считать долго...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(Legolas @ 20.05.05 3:39)
Это генерация случайных чисел от 0 до 9.

Спасибо за информацию, я как-то этого не знал angry.gif
Неужели ты не понял смысл поста? Если ты опишешь
var a: array[1..7, 1..7] of integer;

и обратишься к a[9, 9], что будет? Думать начни !!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 38
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 20.05.05 16:04)
Спасибо за информацию, я как-то этого не знал  angry.gif
Неужели ты не понял смысл поста? Если ты опишешь
var a: array[1..7, 1..7] of integer;

и обратишься к a[9, 9], что будет? Думать начни !!!

то есть лучше написать random(7)?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Viagra And Dapoxetine
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Legolas   Сумма элементов матрицы   17.05.2005 13:14
klem4   опять же... посмотри сюда http://forum.pascal.net.…   17.05.2005 15:20
hiv   А зачем вы суммируете элементы массива в программ…   17.05.2005 16:09
Guest   О, чёрт не внимательно задачу прочитал, а всё-так…   18.05.2005 5:16
volvo   Legolas, ты долго будешь темы дублировать? Или по-…   17.05.2005 19:40
Legolas   Нет, не буду дублировать я темы, буду развивать с…   18.05.2005 5:19
price of viagra at shoppers drug   Venta Cialis Espana   21.12.2021 6:21
hiv   Готового решения тебе здесь никто не даст. Хау…   18.05.2005 12:08
Legolas   Вот решенная задача, может что-нибудь не верно, ил…   19.05.2005 11:47
volvo   Ну, это может и не ошибка, но недочет по крайней м…   19.05.2005 14:02
Legolas   Это генерация случайных чисел от 0 до 9. Не буду …   20.05.2005 7:39
volvo   Спасибо за информацию, я как-то этого не знал :a…   20.05.2005 12:04
Legolas   то есть лучше написать random(7)?   20.05.2005 12:18
hiv   Мдаааа.... По моему твой язык работает в десятки …   20.05.2005 12:34
Legolas   Мне функция random нужна для ввода массива, прост…   20.05.2005 12:38
lasix for dog without prescripti   Viagra And Dapoxetine   21.09.2021 16:29
volvo   Ну так прогони ее и посмотри, все ли верно... Или …   19.05.2005 12:03
Legolas   А зачем мне ее прогонять, я ее сам сделал, и не в…   19.05.2005 13:33
klem4   Наивный ты ;) Прогнать значит нарисовать матриц…   19.05.2005 13:40
hiv   Если программа работает - это не значит что у тебя…   19.05.2005 14:44
where to buy cialis online safel   Viagra Paypal Payment Accepted   10.12.2021 8:37
hiv   По моему это издевательство! Ты перечитывать п…   20.05.2005 12:44
volvo   По-моему, пора закрывать тему. Человек не хочет по…   20.05.2005 12:47
what happens if a woman takes pr   Nemazole Without Prescription   19.12.2021 21:50


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 16.05.2024 20:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name