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

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

Форум «Всё о Паскале» _ Задачи _ задачка на pascal. массив

Автор: MrOverseer 6.01.2008 13:41

В массиве 3х4 расставить в обратном порядке элементы каждой строки.

В задаче нужно чтобы было видно первоначальная матрица и конечный результат, и желательно программу написать по-проще.
ПОЖАЛУЙСТА помогите!!!!!!

Автор: Client 6.01.2008 15:04

uses crt;
var
a,b:array [1..4,1..4] of integer;
i,j:byte;
begin
clrscr;
writeln(' Vvedite: ');
for i:=1 to 4 do
for j:=1 to 4 do
read(a[i,j]);
for i:=1 to 4 do
for j:=4 downto 1 do
b[i,j]:=a[i,5-j];
for i:=1 to 4 do begin
for j:= 1 to 4 do
write(a[i,j]:5);
writeln
end;
writeln;
for i:=1 to 4 do begin
for j:= 1 to 4 do
write(b[i,j]:5);
writeln
end;
readkey
end.
Так пойдет?

Автор: klem4 6.01.2008 16:33

Client, зачем 2 матрицы ? В задании об этом ничего не сказано no1.gif

Автор: Client 6.01.2008 17:20

Но там и не сказано что его нельзя использовать (второй массив) blum.gif
Ну да ладно, вот решил, хотя можно было лишь в факе посмотреть... unsure.gif

uses crt;
const
n=4;
var
a:array[1..n,1..n] of integer;
i,j:byte;
с:integer;
begin
clrscr;
for i:=1 to n do
for j:=1 to n do
read(a[i,j]);
for i:=1 to n do
for j:=1 to n div 2 do begin
с:=a[i,j];
a[i,j]:=a[i,n-j+1];
a[i,n-j+1]:=с
end;
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j]:5);
writeln;
end;
readkey
end.

Автор: MrOverseer 6.01.2008 19:42

Цитата
Так пойдет?

что такое readkey и как он работает?
и еще что такое const, что такое byte и что такое div?

в 4-ом сообщении прога - не пашет
а в 3-м сообщении получилось как-то налеплено. как сделать промежуток между столбцами массива?

Автор: Client 6.01.2008 21:15

Цитата
в 4-ом сообщении прога - не пашет
Надо же, интересно, как это она не работает, когда она у меня даже правильный ответ дает??

Автор: MrOverseer 6.01.2008 21:20

Цитата
Надо же, интересно, как это она не работает, когда она у меня даже правильный ответ дает??

Переписал в точности до запятой. пустой экран, ввожу числа и усе! nea.gif

что такое readkey и как он работает?
и еще что такое const, что такое byte и что такое div?


Автор: Client 6.01.2008 21:28

Вот что у меня


Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: MrOverseer 6.01.2008 21:32

чё за readkey??? и зачем он нужен???

Добавлено через 8 мин.

Цитата
Вот что у меня

а у меня ответ после ввода не выдает. сразу выходит! и если убрать клрскр то ответ в предыдущем случае виден.
В чем моя ошибка(кроме как в ДНК)?

Автор: ammaximus 6.01.2008 21:43

readkey-функция нажатой клавиши. Возвращает код нажатой клавиши.
Здесь используется для задержки выведенной информации на экране до тех пор пока не нажата какая-нибудь клавиша.
div-целочисленное деление, деление с отбрасыванием остатка
byte - целочисленный тип, переменная этого типа способна принимать значения в диапазоне 0..256, т.е. 1 байт
const - раздел описания констант, переменных, к-рые запрещено изменять во время исполнения программы.

Попробуй взять любой учебник, там описано подробнее, вся эта информация, скорее, на первых 10 страницах.

Автор: MrOverseer 6.01.2008 21:48

у меня не работает этот readkey паскаль на него жалуется.

Автор: ammaximus 6.01.2008 21:50

возможно ты забыл прописать uses crt; в начале

Автор: MrOverseer 6.01.2008 21:54

Цитата
возможно ты забыл прописать uses crt; в начале

нет не забыл

у меня версия паскаля 6.0. может из-за этого?

Автор: ammaximus 6.01.2008 22:21

Сотри readkey; и напиши readln;
В чем особенности шестой версии сказать не могу, никогда не пользовался.

Автор: MrOverseer 7.01.2008 20:12

Цитата
Сотри readkey; и напиши readln;

по-моему readkey исп-ся в С++ а в паскале он не всегда робатает, так?


Цитата
a[i,j]:=a[i,n-j+1];

почему записано именно так, что означает? и вообще не могу разобраться в проге

и в задании вообще массив 3х4

Автор: volvo 7.01.2008 21:31

Цитата
по-моему readkey исп-ся в С++ а в паскале он не всегда робатает, так?
Чего? При чем тут C++? Библиотечная функция языка, не работает - значит неправильно используешь...

А не работает - по очень простой причине: 1000 раз повторял, Client, наконец начинай обращать внимание на свои же прошлые ошибки!!! Не первый же день на форуме. Чего ты постоянно пихаешь везде Read вместо ReadLn? Ну, ввел число, а Enter где остался? В буфере клавиатуры? Поэтому даже один ReadLn в конце программы не помогает - надо ставить 2: первый прочтет тот самый забытый Enter из буфера, второй будет ждать еще одного нажатия на Enter...