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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2009, 00:13   #1
Сергей К.
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 11
По умолчанию Turbo Pascal. помогите найти элемент массива...

Сформировать одномерный массив из 9 элементов целого типа.
Написать 3 подпрограммы-процедуры:
Первая процедура заполняет массив случайными числами (Random) из диапазона 0..99.
Вторая процедура выводит массив на экран в одну строку.
Третья процедура находит элемент массива, у которого первая цифра наибольшая, выводит на экран значение элемента и его индекс.

вот моя попытка: (кажется всё правильно,только нету 3 процедуры. ДОПИШИТЕ ПОЖАЛУЙСТА)
Цитата:
Program Proga;
Var AA:Array [1..9] OF Integer;
I,Max,Min,Imax,Imin:Integer;
Procedure Massiv;
Begin
Randomize;
For I:=1 TO 9 DO AA[I]:=Random(100);
End;
Procedure Vivod;
Begin
For I:=1 TO 9 DO Write(AA[I]:4);
End;
Procedure Naib;
Begin


End;
Begin
Massiv;
Vivod;
Naib;
WriteLn;
ReadLn
End.

Последний раз редактировалось Сергей К.; 15.12.2009 в 00:44.
Сергей К. вне форума Ответить с цитированием
Старый 15.12.2009, 00:35   #2
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
procedure Naib ;
  procedure FirstDigit(X: Integer);
  begin
    while X div 10 <> 0 do
      X := X div 10;
    FirstDigit := X;
  end;
begin
  Max := FirstDigit(AA[1]);
  IMax := 1;
  for I := 2 to 9 do
    if Max < FirstDigit(AA[I]) then
    begin
      Max := FirstDigit(AA[I]);
      IMax := I;
    end;
  WriteLn(AA[IMax]);
  WriteLn(IMax);
end;
P. S. У тебя в первой процедуре надо заполнять массив числами от 0 до 9, так что пиши Random(10), а не Random(100)
Alex_FF вне форума Ответить с цитированием
Старый 15.12.2009, 10:48   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
P. S. У тебя в первой процедуре надо заполнять массив числами от 0 до 9, так что пиши Random(10), а не Random(100)
Ошибаетесь! в задаче нужны числа от 0 до 99
так что всё правильно написано!!


Сергей К. тёзка, а чем Вас не устроила Ваша же тема "Pascal. поиск макс. элемента массива" ?????
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.12.2009, 18:06   #4
Сергей К.
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 11
По умолчанию

тем, что ту программу я пытался вставить в свою и заменить все имена на свои, но там почему-то не работает. и ещё мне надо без "FirstDigit(X: Integer)" потому,что мы такого не изучали и препод не зачтёт мне такую прогу. можно как-нибудь через IF сделать??
Сергей К. вне форума Ответить с цитированием
Старый 15.12.2009, 18:18   #5
Сергей К.
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 11
По умолчанию

а ещё вот тут:
procedure Naib ;
procedure FirstDigit(X: Integer);
begin
while X div 10 <> 0 do
X := X div 10;
FirstDigit := X;
end;

выдаёт ошибку.нужно вставить "(", вставляешь, выдаёт что нужно ")" и потом ";" и вообще :=X не нужно. что делать?
Сергей К. вне форума Ответить с цитированием
Старый 15.12.2009, 19:47   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

В вашем конкретном случае вместо FirstDigit(_что_то_)
можете смело писать
(_что_то_ div 10)
Это даст ПЕРВУЮ цифру числа (или выражения) _что_то_
ВНИМАНИЕ! ВАЖНО! это допустимо только потому, что у вас число в диапазон от 0 до 99 (для трёх и более значных чисел простое деление НЕ ДАСТ первую цифру. Тогда уже Вам волей-неволей прийдётся думать и разбираться, как же работает функция FirstDigit


___________________
p.s. она у Алекса написана с ошибками.
правильно так:
Код:
  function FirstDigit(X: Integer) : integer;
  begin
    while X div 10 <> 0 do
       X := X div 10;
    FirstDigit := X;
  end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива символов(Turbo Pascal 7.0)) Rankin Помощь студентам 4 12.01.2010 17:02
Turbo Pascal. Формирование и обработка одномерного массива мирЗвонка Помощь студентам 2 04.11.2009 12:17
EXSEL (VBA) найти элемент наиболее близкий к среднему значению элементов массива Lady_Deluxe Помощь студентам 0 16.06.2009 13:45
Найти 3-ий по величине элемент массива.. PavelZet Помощь студентам 10 07.05.2009 21:06
[Turbo Pascal] Помогите найти ошибку в сортировке, пожалуйста. Pork6 Помощь студентам 3 08.10.2008 21:29