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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2009, 06:14   #1
aunt Sveta
 
Регистрация: 17.04.2009
Сообщений: 7
По умолчанию помогите решить задачу Pascal ABC массивы

Задача: заполнить массив 20 случайными числами в пределах от 10 до 50,
чтоб все числа были разными.
Что делаю: сначала сортирую по возрастанию, потом совпадающий элемент увеличиваю на 1, но программа выдает позаследующий меньше предыдущего.
Понимаю, что детский сад, но я только начала обучение...


Код:
program massiv; 
var
    a:array[1..21] of integer;
    i,min,k,Nmin: integer;
begin
    cls;
    randomize;
    for i:=1 to 21 do
    begin
       a[i]:=10+random(40);
    end;
        for i:=1 to 21 do
     begin
        min:=a[i]; Nmin:=i;
        for k:=i+1 to 21 do
        if a[k]<min then
      begin
         min:=a[k]; Nmin:=k;
      end;
         a[Nmin]:=a[i]; a[i]:=min;
      end;
         for i:=1 to 21 do
      begin
         if i>1 then
      begin
         if a[i]=a[i-1] then a[i]:=(a[i]+1);
         write(a[i],' ');
      end;
      end;
end.
Вывод:
16, 21, 22, 23, 22, 23….

Последний раз редактировалось Stilet; 17.04.2009 в 08:38.
aunt Sveta вне форума Ответить с цитированием
Старый 17.04.2009, 06:38   #2
EvKont
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 26
По умолчанию

Код:
type
  mnum = set of byte;

var
  num : mnum;
  mas : array [1..20] of byte;
  kol : byte;
  ran : byte;
begin
  for kol := 1 to 20  do
    begin
      repeat
      ran := Random(40) + 10;
      until not (ran in num);
      num := num + [ran];
      mas[kol] := ran;
    end;

  for kol := 1 to 20 do
    Write (IntToStr(mas[kol]) + ' ');
  Readln;
end.

Последний раз редактировалось Stilet; 17.04.2009 в 08:38.
EvKont вне форума Ответить с цитированием
Старый 17.04.2009, 06:56   #3
aunt Sveta
 
Регистрация: 17.04.2009
Сообщений: 7
По умолчанию

Все работает, правда что такое IntToStr и mnum я не знаю и в методичке нет.

Спасибо за помощь

Последний раз редактировалось Stilet; 17.04.2009 в 08:39.
aunt Sveta вне форума Ответить с цитированием
Старый 17.04.2009, 08:40   #4
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

Код:
program massiv;
uses crt;
var 
a:array[1..20] of integer;
i,n,j:integer;
begin
 clrscr;  randomize;
 i:=1;
  while i<21 do
 begin
   n:=0;
   a[i]:=10+random(40);
   if i>1 then
    for j:=1 to i-1 do
     if a[j]=a[i] then n:=1;
   if n=0 then inc(i);
   if i=1 then inc(i);
 end;
 for i:=1 to 20 do
  write(a[i],' ');
 readkey;
end.
EvKont видимо писал на дельфях, IntToStr - процедура преобразования типов, mnum - пользовательски тип в его программе
Пол-жизни сидючи, в монитор глядючи...

Последний раз редактировалось Last; 17.04.2009 в 08:43.
Last вне форума Ответить с цитированием
Старый 17.04.2009, 09:22   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
EvKont видимо писал на дельфях, IntToStr ...
угу. вот только для решаемой задачи это абсолютно НЕВАЖНО!
вместо Write (IntToStr(mas[kol]) + ' '); написать так (кстати в Дельфи тоже пройдёт):
Write(mas[kol]:3,' ');

и в начале программы пропущен оператор иницилизации генератора случайных чисел:
randomize;


А так - этот код отлично отработает В Turbo Pascal!!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.04.2009, 15:03   #6
Last
В прострации
Форумчанин
 
Регистрация: 13.01.2009
Сообщений: 239
По умолчанию

согласен. Просто я подумал раз в методичке нет про mnum и inttostr, то стоит написать код попроще
Пол-жизни сидючи, в монитор глядючи...
Last вне форума Ответить с цитированием
Старый 07.06.2010, 13:47   #7
daydara
Новичок
Джуниор
 
Регистрация: 07.06.2010
Сообщений: 1
По умолчанию

Решите плисс:
1) В файл Telpone записать номера телефонов сотруднико учреждения указать фамилии , инициалы, должность ,
стаж работы и номер телефона . Получить: номер телефона сотрудника по его фамилии и инициаллам ,
по номеру получить фамилию и инициалы,список телефонов всех сотрудников ,работающих в указанной должности,
список сотрудников ,чей стаж работы превышает указанное количество лет.
2)1.Нарисовать рисунок на своё усмотрение .2. В рпавильном четырёхугольной пирамиде провести сечение ,проходяшеечерез диагональ основания и середину бокового ребра. Построить график функции F(x)sin в квадрате x .
Заранее благодарен.
Мой почтовый ящик Daydaro@mail.ru
daydara вне форума Ответить с цитированием
Старый 12.06.2010, 09:52   #8
Vampire
Новичок
Джуниор
 
Регистрация: 12.06.2010
Сообщений: 2
По умолчанию

помогите пожалуйста решить задачку PascalABC.....
В русском языке как правило, после букв Ж, Ч, Ш, Щ, пишется И, А, У, а не Ы, Я, Ю. Проверить заданный текст на соблюдение этого правила и исправи ошибки ( с учетом исключений: ЖЮРИ, БРОШЮРА, ПАРАШЮТ).
...заранее спасибо
Vampire вне форума Ответить с цитированием
Старый 12.06.2010, 14:38   #9
dexter2145
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 26
По умолчанию

помогите решить, написать программу (код) в PascalABC

Описать процедуру Split2(A, NA, B, NB, C, NC), формирующую по целочисленному массиву A размера NA два целочисленных массива B и C размера NB и NC соответственно; при этом массив B содержит все четные числа из массива A, а массив C — все нечетные числа (в том же порядке). Массивы B и C и числа NB и NC являются выходными параметрами. Применить эту процедуру к данному массиву A размера NA и вывести размер и содержимое полученных массивов B и C.
dexter2145 вне форума Ответить с цитированием
Старый 12.06.2010, 14:53   #10
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Цитата:
помогите решить, написать программу (код) в PascalABC
http://programmersforum.ru/showthread.php?t=103439
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста решить 5 несложных задач (Pascal ABC) Аня90 Паскаль, Turbo Pascal, PascalABC.NET 13 11.12.2012 18:33
Помогите решить Задачу (Массивы) срочно. pav19 Паскаль, Turbo Pascal, PascalABC.NET 3 12.04.2009 00:00
Помогите решить задачу на Двухмерные массивы. dimmkka Помощь студентам 1 03.03.2009 00:04
Помогите решить задачу на массивы DeD_Modder Паскаль, Turbo Pascal, PascalABC.NET 1 29.10.2008 12:33