Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод элементов массива в файл 
:(
    Опции темы
Alexander4321
Дата 20.12.2010, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 11.11.2010

Репутация: нет
Всего: нет



Добрый день! Получил задание сформировать двумерный массив B размером 2 x 4 (2 - количество строк; 4 – количество столбцов) с помощью генератора случайных чисел и вывести элементы массива на экран и в файл. Вычислить и вывести на экран и в файл строку матрицы B, содержащую максимальное количество отрицательных элементов (оформить вычисление количества отрицательных элементов в виде функции).
1)Для начала справился с формированием массива и выводом его на экран
Код

var B: array [1..2,1..4] of integer;
      i,j: integer;
      F: Text;
   begin
     randomize;
     for i:=1 to 2 do
     begin 
         for j:=1 to 4 do
         begin
            B[i,j] :=random (100)-50;
            write (B[i,j]:4);
         end;
         writeln;
     end;
     readln;
end.

2) Далее я нашел необходимые операторы для вывода элементов массива в файл
     а) assign (F, shabanov.txt);
         rewrite (F);
     б) write (F, B:4);
Встал вопрос, после какой строки команды необходимо вставить пункт а) (предполагаю, что перед randomize), а также пункт б). Также при попытке вставить write(F, B:4) в текст программы при компиляции выдает, что я не могу подставлять такой тип переменной сюда. Может как то по другому необходимо записать B, например B[i,j]??? 
3) В тесте задания не было указано, что цифры должны быть в определенном диапазоне. Но, чтобы получить отрицательные значения, я не придумал ничего лучшего, как задать диапазон. Не подскажите, можно ли обойтись без диапазона?

Заранее спасибо за помощь!
PM   Вверх
DarkProg
Дата 21.12.2010, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: нет
Всего: 19



Цитата(Alexander4321 @  20.12.2010,  23:38 Найти цитируемый пост)
Встал вопрос, после какой строки команды необходимо вставить пункт а) (предполагаю, что перед randomize), а также пункт б). Также при попытке вставить write(F, B:4) в текст программы при компиляции выдает, что я не могу подставлять такой тип переменной сюда. Может как то по другому необходимо записать B, например B[i,j]??? 

Как правило, файлы с которыми будет работать программа определяются в начале программы(тут я думаю всего лишь навсего правила хорошего тона программирования) так что код с assign ставьте до или сразу после randomize

Вывести весь массив одной командой нельзя! поэтому выводить надо поэлементно, но если мне память не изменяет не так write (B[i,j]:4), а вот так write(B[i,j]), вроде у вас целые числа, а для этих не надо было указывать ничего через двоеточие, я бы написал так write(b[i,j], ' ')

Вам для программы надо чтобы работать с файлом(вы ведm реализуете программу через консоль верно???)

Код

assign (output, shabanov.txt);
rewrite (output);


И output объявлять не надо!

Цитата(Alexander4321 @  20.12.2010,  23:38 Найти цитируемый пост)
3) В тесте задания не было указано, что цифры должны быть в определенном диапазоне. Но, чтобы получить отрицательные значения, я не придумал ничего лучшего, как задать диапазон. Не подскажите, можно ли обойтись без диапазона?

Ну только двойным ramdom'ом в одном вы определяете абсолютную величину, а вторым определяете знак(в данном случае помог бы random(2)) и сравнивали бы тогда если сгенерирована 1, то например число положительное, а если ноль, то число отрицательное, но IMHO тот вариант что у вас мне кажется более оптимальным.

P.S. пользуйтесь подсветкой кода в будущем - так легче читается


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Alexander4321
Дата 22.12.2010, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 11.11.2010

Репутация: нет
Всего: нет



Спасибо!
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.