Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на двумерный массив, подскажите
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Dimon4ic
подскажите умные люди пожалуйста как решить
Задачка такова характера:
Ввести с клавиатуры целочисленный двумерный массив размером N * M элементов (N. M <=4). Вывести его на экран в виде таблицы. Вычислить сумму окаймляющих элементов (т.е. элементов первой и последней строки и первого и последнего столбца).
sheka
 
for y:=1 to m do
  for x:=1 to n do readln(a[y,x]); 

for y:=1 to m do begin
  for x:=1 to n do write(a[y,x]:5);
  writeln;
  end;

s:=0;
for x:=1 to n do s:=s+a[1,x]+a[m,x];
for y:=2 to m-1 do s:=s+a[y,1]+a[y,n];
Lapp
sheka, не забывай инициализировать переменную s перед суммированием:
s:=0;

sheka
я и не забыл!

зы. за последние 2 дня я увидел столько прозьб типа "помогите решить задачу: вывести последовательность 10 8 6 4 2 0". пишешь как( for i:=5 downto 0 do write(2*i:3); ), а у тебя просят написать всю задачу!
знаю, что в программировании я не особо силен, но мне лично обидно. человек хоть раз же должен открыть книгу.ну хоть на 10 странице и прочитать, что программа начинается begin, а заканчивается end. и что перед begin надо сделать инициализацию переменных var i:integer;.
V877
Цитата
var i:integer;
- это не инициализация переменных, а описание, ты обязан это знать, коли ты уж так рвешься всем помогать... А вот инициализация как-раз делается так, как показано в посте №3, и ты в том частичном решении, которое выкладываешь, можешь выпустить этап описания, но этап инициализации обязан присутствовать.

Ибо если ты не сделаешь описания переменной, программа не откомпилируется (а значит, пусть берет книгу смотрит, почему), а если не сделаешь инициализацию - будет работать ("Ура! Работает! Все, пошел сдавать!!!"), но результат может выдавать очень далекий от истины ("Ну и форум... Какой-то бред посоветовали, из-за них зачет завалил... Пойду на <тут название другого форума> лучше"). Когда ТЕБЕ помогают, ты бы хотел подобного к СЕБЕ отношения?

(все, что кавычках - это реальные отзывы, полученные через ICQ. И люди реально уходили, а на других форумах - общаются до сих пор)
Гость
Цитата(sheka @ 11.06.2009 8:19) *
и что перед begin надо сделать инициализацию переменных var i:integer;.
Нет, это не инициализация, это описание. Про это я не говорю: да, не надо писать все, очевидные вещи можно (и нужно) опустить, пусть сами дописывают. Но инициализация s:=0 есть часть подсчета суммы, и ее не надо оставлять на новичков - они не догадаются.
O'kay?
Lapp
Администрация бдит))
даже когда ее нет))
sheka
понял, исправим. smile.gif
Dimon4ic
спасибо кто пытался, больше помощи ненада, ответ нашёлся, кому интересна, смотрите:
program test;
uses
crt;
const
n = 3;
m = 4;
var
arr : array[1..n, 1..m] of integer;
i, j, sum : integer;
begin
clrscr;

textColor(14);
writeln('Matrica imeet vid: ');
for i := 1 to n do
begin
for j := 1 to m do
begin
arr[i, j] := random(10) + 1;
write(arr[i, j]:3);
end;
writeln;
writeln;
end;

sum := 0;
for i := 1 to m do
begin
inc(sum, arr[1, i]);
inc(sum, arr[n, i]);
end;
for i := 2 to n - 1 do
begin
inc(sum, arr[i, 1]);
inc(sum, arr[i, m]);
end;

textColor(4);
writeln;
write('Summa sostavila: ', sum);

readln;
end.
sheka
Цитата(Dimon4ic @ 11.06.2009 23:37) *

спасибо кто пытался, больше помощи ненада, ответ нашёлся, кому интересна, смотрите:

to админы:
есть ли место на форуме где можна использовать нецензурную лексику?

мне интересна dry.gif : чем тебе мое решение не угодило? согласен, сумму можно искать и другими методами нежели я.
но насколько я знаю ввод и вывод двухмерного массива делаются однозначно.
где в твоем решении( которое ты, скорее всего, взял у кого-то, а не решил сам) ответ на поставленный вопрос: "Ввести с клавиатуры целочисленный двумерный массив" ?
"Вывести его на экран" ты зделал, но при таком оформлении вопросов, можно для нахождения суммы спокойно обойтись и вообще без массива.
и кода меньше, и памяти будет меньше брать!

кстати, об оформлении. эту задачу надо решать обязательно с использованием graph, там есть разные виды шрифтов и их размеров!!!

PS. понял, вопросы отменяются - решил не сам, а похвастался чужим решением!
Lapp
Цитата(sheka @ 12.06.2009 1:07) *
есть ли место на форуме где можна использовать нецензурную лексику?
Нету.

Sheka, не обижайся. На уродов не обижаются. Ну, не могут они даже бегин/энд поставить, бедняги..

Напоминаю: ты всегда можешь понизить репутацию пользователю в подобной ситуации. Некая замена нецензурщине - хотя. может, не всегда эквивалентная.

ээ.. или для этого нужно иметь 100 сообщений? не помню..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.