Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 17.04.2009, 06:14   #1
aunt Sveta
 
Регистрация: 17.04.2009
Сообщений: 7
Репутация: 10
По умолчанию помогите решить задачу 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
Репутация: 28
По умолчанию

Код:

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
Репутация: 10
По умолчанию

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

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

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

Код:

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
Сообщений: 22,622
Репутация: 5062
По умолчанию

Цитата:
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
Репутация: 71
По умолчанию

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

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

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

помогите решить, написать программу (код) в 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
Репутация: 125
По умолчанию

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



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




15:15.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru