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

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

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

 
 Ответить  Открыть новую тему 
> Матрица. Решить используя средства управления вводом/выводом.
RioDezz
сообщение 14.11.2014 0:08
Сообщение #1





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

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


Здравствуйте!

Паскаль изучаю недавно, дали дз, но не понятно как сделать его. Учителя говорят думай, но я так ничего не смог придумать. Помогите, пожалуйста! Заранее спасибо.

Задача:
Решить поставленную задачу, используя средства управления вводом/выводом. Целочисленный массив размера n*m (n,m<=10) сформировать следующим образом: все элементы первого столбца равны 10, второго - 20, третьего - 30 и т. д. Вывести массив на экран так, чтобы каждая четная строка была смещена относительно нечетной на два элемента, поочередно то вправо, то влево:
            *  *  *  *  * 
* * * * *
* * * * *
* * * * *
* * * * *
и т. д.

Вот все, что написал:
var
n,m,i,j:integer;
a:array[1..10,1..10] of integer;
begin
write('Enter matrics n*m: ');
readln(n,m);
if (n<=10) and (m<=10) then
begin
writeln;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=j*10;
write(a[i,j]:4);
end;
writeln;
end;
end
else write('Nevernie znacheniya, n,m>10!');
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Федосеев Павел
сообщение 14.11.2014 8:27
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 298
Пол: Мужской
Реальное имя: Федосеев Павел

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


Примерно так, но это не очень аккуратное решение...

const
StepPos = 3;
var
step, shift: integer;
..........................

step := StepPos;
shift := 2 * step;
for i := 1 to n do
begin
Write(a[i, 1]: (shift + 2));
for j := 2 to m do
begin
Write(a[i, j]: (StepPos));
end;
writeln;
if (shift = 0) or (shift = 2 * StepPos) then
step := -step;
shift := shift + step;
end;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 27.04.2024 9:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"