Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Как сформировать двухмерный массив 7 на 7 и заполнить его единицами (на Паскале) (http://www.tehnari.ru/f43/t18949/)

ummasha 24.12.2008 21:16

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

AlexZir 25.12.2008 11:36

Сначала его нужно прописать в разделе переменных, потом с помощью циклов заполнить.
Код:

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.

вывод содержимого массива на экран сделаете сами :)

ummasha 25.12.2008 17:22

Вы думаете, я этого не сделала?! Еще как сделала! 128 раз! И эти проклятые единицы в зависимости от расстановки begin и end вылезают то в строчку, то в столбик, то по 7, то по 49 сразу!!! :mad:

Vladimir_S 25.12.2008 21:53

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

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

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

Да, "end." в программе AlexZir убрать.

AlexZir 26.12.2008 04:03

Извиняйте, конечно, но программу я написал так, как был поставлен вопрос :). Более четко формулируйте задание, будет более полный вариант решения.

ummasha 26.12.2008 07:42

Спасибо!

ummasha 29.01.2009 19:05

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

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.

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

AlexZir 30.01.2009 09:20

Решение в общем верное, только возник один вопрос.
Цитата:

Сообщение от ummasha (Сообщение 170934)
randomize;
.....
a[i,j]:=random(1)+1;

А это вам зачем? Вы генерируете случайное значение из интервала (0;1) и увеличиваете его на 1. При этом у вас все равно элемент массива получает значение 1, так как этот массив целочисленный.

Не проще ли написать просто присвоение a[i,j]:=1; не используя генератор псевдослучайных чисел совсем?

ummasha 30.01.2009 13:12

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

Vladimir_S 30.01.2009 13:28

Цитата:

Сообщение от ummasha (Сообщение 171203)
Да я пробовала, но почему-то не получается.

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


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

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.