Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2008, 09:22   #1
ALF
 
Регистрация: 28.02.2008
Сообщений: 5
По умолчанию помогите решить задачу на Turbo Паскале!

Сформулируйте и выведите на экран массив из 9 элементов каждые 3 последующие элементы которого формулируются по правилам:
1- равен числу введенного с клавиатуры;
2- равен удвоенному текущему индексу;
3 -равен однозначному числу полученному с помощью датчика случайных чисел.
Очень надо!
За ранее блогадарен!
ALF вне форума Ответить с цитированием
Старый 28.02.2008, 10:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Идеи есть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.02.2008, 12:19   #3
ALF
 
Регистрация: 28.02.2008
Сообщений: 5
По умолчанию

Надо создать масив но как и внего заганять данные!
ALF вне форума Ответить с цитированием
Старый 28.02.2008, 12:24   #4
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Может не сформулируйте, а сформируйте? В чем проблема ? Читай сразу три элемента в цикле от одного до 9. Или проверяй делимость числа на 3 и на 2 через mod.

Наример

Код:
randomize;
i:=1;
while i<=9 do begin
readln(a[i]);
i:=i+1;
a[i]:=2*i;
writeln(a[i]);
i:=i+1;
a[i]:=random(10);
writeln(a[i]);
i:=i+1;
end;

Последний раз редактировалось Иллидан; 28.02.2008 в 12:29.
Иллидан вне форума Ответить с цитированием
Старый 28.02.2008, 12:56   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Чтобы приведенный выше алгоритм красиво работал, его нужно слегка дополнить и сделать вывод не столбиком..
Код:
uses crt;
var a:array[1..9]of integer;
    i:integer;
begin
clrscr;
randomize;
i:=1;
while i<=9 do
   begin
     readln(a[i]);
     i:=i+1;
     a[i]:=2*i;
     i:=i+1;
     a[i]:=random(10);
     i:=i+1;
    end;
for i:=1 to 9 do
write(a[i],' ');
readln
end.

Последний раз редактировалось puporev; 28.02.2008 в 12:59.
puporev вне форума Ответить с цитированием
Старый 28.02.2008, 16:23   #6
ALF
 
Регистрация: 28.02.2008
Сообщений: 5
По умолчанию

Все понятно только как формируется каждое второе число масив? Это число должно быть в два раза больше введенного с клавиатуры!

uses crt; - очищает экран
var a:array[1..9]of integer; - формирует масив из 9 ячеек
i:integer; - определяем тип перменной
begin
clrscr;
randomize;
i:=1; - присваиваем начально значение переменной
while i<=9 do - проверяем что i меньше 9
begin
readln(a[i]); -считываем переменную
i:=i+1; - прибавляем 1
a[i]:=2*i; умножаем на 2
i:=i+1; и еще раз прибавляем 1
a[i]:=random(10); - генерируем число до 10
i:=i+1; - прибавляем 1
end; конец процедур
for i:=1 to 9 do цикл 9 раз
write(a[i],' '); записваем в масив
readln прибавляем счетчик
end. конец

я правильно разобрался в программе?

Последний раз редактировалось Alex21; 29.02.2008 в 10:19.
ALF вне форума Ответить с цитированием
Старый 28.02.2008, 16:59   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

По условию:
Цитата:
2- равен удвоенному текущему индексу;
Ты пишешь
Цитата:
Это число должно быть в два раза больше введенного с клавиатуры!
Сам-то разберись с условием.
Код:
uses crt; - модуль для работы с экраном и клавиатурой
var a:array[1..9]of integer; - формирует масив из 9 элементов 
i:integer; - счетчик цикла - целое число
begin 
clrscr; //очищаем экран
randomize; 
i:=1; - присваиваем счетчику цикла значение 1
while i<=9 do - проверяем что i меньше или равно 9
begin 
readln(a[i]); -считываем первую переменную
i:=i+1; - прибавляем 1
a[i]:=2*i; умножаем текущий индекс на 2(как в первом условии)
i:=i+1; и еще раз прибавляем 1
a[i]:=random(10); - генерируем число от 0 до 9
i:=i+1; - прибавляем 1
end; конец первого цикла 
for i:=1 to 9 do цикл 9 раз
write(a[i],' '); //выводим массив на экран
readln   //задержка до нажатия клавиши Enter
end. конец
puporev вне форума Ответить с цитированием
Старый 28.02.2008, 17:02   #8
ALF
 
Регистрация: 28.02.2008
Сообщений: 5
По умолчанию

а зачем два раза прибавляем в 12 16 строке единицы?
ALF вне форума Ответить с цитированием
Старый 28.02.2008, 17:24   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
i:=1;  
while i<=9 do   
begin    
readln(a[i]); -считываем первую переменную  // a[1]
i:=i+1; - прибавляем 1          
a[i]:=2*i; умножаем текущий индекс на 2(как в первом условии) //a[2]  
i:=i+1; и еще раз прибавляем 1  
a[i]:=random(10); - генерируем число от 0 до 9  //a[3]
i:=i+1; - прибавляем 1   //все повторяем еще два раза, пока i не будет равно 9.
puporev вне форума Ответить с цитированием
Старый 28.02.2008, 17:29   #10
ALF
 
Регистрация: 28.02.2008
Сообщений: 5
По умолчанию

Все разобрался всем БОЛЬШОЕ спасибо!
ALF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу на Turbo Pascal tree Паскаль, Turbo Pascal, PascalABC.NET 6 16.05.2010 23:27
Помогите, пожалуйста, решить задачу на Turbo Pascal. Тема: записи. Morrigan13 Помощь студентам 1 28.03.2008 21:09
Помогите решить задачу в Паскале freeman4913 Помощь студентам 3 24.12.2007 21:41