Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 24.12.2008, 21:16   #1 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию Как сформировать двухмерный массив 7 на 7 и заполнить его единицами (на Паскале)

Как сформировать двухмерный массив 7 на 7 и заполнить его единицами (на Паскале)? Прошу, помогите!
ummasha вне форума   Ответить с цитированием

Старый 24.12.2008, 21:16
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Ваша тема по описанию очень схожа с этими топиками

Одномерный массив в Паскале
В Паскале двумерный массив
Массив в паскале
Массив в VBA
Массив

Старый 25.12.2008, 11:36   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Сначала его нужно прописать в разделе переменных, потом с помощью циклов заполнить.
Код:
var a: array [1..7,1..7] of integer;
     i,j: integer;
begin
for i:=1 to 7 do 
for j:=1 to 7 do a[i,j]:=1;
end.
вывод содержимого массива на экран сделаете сами
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 25.12.2008, 17:22   #3 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Вы думаете, я этого не сделала?! Еще как сделала! 128 раз! И эти проклятые единицы в зависимости от расстановки begin и end вылезают то в строчку, то в столбик, то по 7, то по 49 сразу!!!
ummasha вне форума   Ответить с цитированием
Старый 25.12.2008, 21:53   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ну тоже мне - проблема века!

Продолжение:

FOR i:=1 TO 7 DO
BEGIN
FOR j:=1 TO 7 DO
Write(a[i, j]:3);
Writeln;
END;
READLN;
END.

Да, "end." в программе AlexZir убрать.
Vladimir_S вне форума   Ответить с цитированием
Старый 26.12.2008, 04:03   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Извиняйте, конечно, но программу я написал так, как был поставлен вопрос . Более четко формулируйте задание, будет более полный вариант решения.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 26.12.2008, 07:42   #6 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Спасибо!
ummasha вне форума   Ответить с цитированием
Старый 29.01.2009, 19:05   #7 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Решала совсем другую задачу и поняла, как решить эту:

Program Pascal;
Var a:array[1..100,1..100] of integer;
i,j:integer;
BEGIN
randomize;
For i:=1 to 7 do
begin
For j:=1 to 7 do
begin
a[i,j]:=random(1)+1;
write(a[i,j]:4);
end;
writeln;
end;
END.

По-другому не получается, только так)))

Последний раз редактировалось ummasha; 29.01.2009 в 19:12
ummasha вне форума   Ответить с цитированием
Старый 30.01.2009, 09:20   #8 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Решение в общем верное, только возник один вопрос.
Цитата:
Сообщение от ummasha Посмотреть сообщение
randomize;
.....
a[i,j]:=random(1)+1;
А это вам зачем? Вы генерируете случайное значение из интервала (0;1) и увеличиваете его на 1. При этом у вас все равно элемент массива получает значение 1, так как этот массив целочисленный.

Не проще ли написать просто присвоение a[i,j]:=1; не используя генератор псевдослучайных чисел совсем?
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 30.01.2009, 13:12   #9 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Да я пробовала, но почему-то не получается.
Сейчас попробовала сделать это в Pascal ABC и все получилось! ))))) Видимо, с Turbo Pascal что-то не в порядке. И еще я, наверное, напутала что-то с begin'ами и end'ами.

Последний раз редактировалось ummasha; 30.01.2009 в 13:23 Причина: Получилось!
ummasha вне форума   Ответить с цитированием
Старый 30.01.2009, 13:28   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ummasha Посмотреть сообщение
Да я пробовала, но почему-то не получается.
Нет, Маша, это не дело. Должно получаться. Давайте подробнее. Ведь что Вы написали? Вместо простейшего оператора присваивания
a[i,j]:=1;
Вы поступаете так:
1. Включаете генератор случайных чисел.
2. Даете ему такое дикое ограничение на диапазон, что он способен генерировать только нули.
3. К этим нулям прибавляете единицу.
В результате, конечно же, единицу и получаете. Но согласитесь - из Брянска в Москву можно добираться и через Лос-Анджелес, только вот зачем?
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:09.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.