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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2014, 10:12   #1
Firgat13
Пользователь
 
Регистрация: 17.10.2014
Сообщений: 20
По умолчанию Динамические структуры данных

2)Сформировать список из N целочисленных случайных элементов (N- вводится пользователем ,значения элементов выбирать из диапазона от 0 до 99 ).Удалить из списка четные числа,только в том случае, если перед и после четного числа стоят элементы с нечетными значениями.
Firgat13 вне форума Ответить с цитированием
Старый 31.10.2014, 11:23   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Добавление и удаление элементов из списка - примеры из учебника. Берите и делайте, проблем быть не должно.
Arigato вне форума Ответить с цитированием
Старый 31.10.2014, 11:38   #3
Firgat13
Пользователь
 
Регистрация: 17.10.2014
Сообщений: 20
По умолчанию

Сформировать список из N целочисленных случайных элементов (N- вводится пользователем ,значения элементов выбирать из диапазона от 0 до 99 ). После каждого элемента с четным числом вставить элемент , содержащий сумму цифр этого числа. Помогите решить это что не получаеться
Firgat13 вне форума Ответить с цитированием
Старый 31.10.2014, 11:38   #4
Firgat13
Пользователь
 
Регистрация: 17.10.2014
Сообщений: 20
По умолчанию

Код:
uses crt;
type Ptr=^count;
     count=Record
           Key:integer;
           Next:ptr;
          end;
var p,q,first,l:ptr;
    n,i,k:integer;
begin
randomize;
//создаем исходный список
repeat
write('Размер списка n>1 n=');
readln(n);
until n>1;
writeln('Введите первый элемент от 0 до 99');
new(p);
first:=p;
p^.next:=nil;
repeat
 readln(a);
until a in [0..99];
p^.key:=a;
q:=p;
writeln('Введите остальные числа от 0 до 99');
for i:=2 to n do
 begin
  new(p);
  repeat
  readln(a);
  until a in [0..99];
  p^.key:=a;
  p^.next:=nil;
  q^.next:=p;
  q:=p;
 end;
//выводим его на экран
writeln('Исходный список');
p:=first;
while (p<>nil) do
 begin
  write(p^.key,' ');
  p:=p^.next;
 end;
writeln;
//вставляем суммы цифр после элементов с четными номерами
p:=first;
i:=0;
while p<>nil do
 begin
  k:=p^.key; //смотрим значение
  i:=i+1;    //его номер в начальном списке
  if i mod 2=0 then //если номер четный
   begin
    new(l);
    q:= p^.next;
    p^.next:=l;
    l^.next:=q;
    l^.key:=k div 10+k mod 10;//сумма цифр 1 и 2 значных чисел (0..99);
    p:=l^.next;
   end
  else  p:=p^.next; //если номер нечетный дальше
 end;
//выводим полученный список
writeln('Вставка суммы цифр после элементов с четными номерами');
p:=first;
while (p<>nil) do
 begin
  write(p^.key,' ');
  p:=p^.next;
 end;
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 31.10.2014 в 11:45.
Firgat13 вне форума Ответить с цитированием
Старый 31.10.2014, 11:42   #5
Firgat13
Пользователь
 
Регистрация: 17.10.2014
Сообщений: 20
По умолчанию

вроде так но нужно сделать рандом случайных чисел а не самому вводить
Firgat13 вне форума Ответить с цитированием
Старый 31.10.2014, 11:49   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
сделать рандом случайных чисел а не самому вводить
а остальное всё работает?!
Так нет ничего проще.
замените
Код:
  repeat
    readln(a);
  until a in [0..99];
на код:
Код:
  a := Random(100);
и всё!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.10.2014, 11:51   #7
Firgat13
Пользователь
 
Регистрация: 17.10.2014
Сообщений: 20
По умолчанию

дальше тоже есть проблемы с нахождением четных чисел
Firgat13 вне форума Ответить с цитированием
Старый 31.10.2014, 14:39   #8
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

И в чем проблема? Операция mod в помощь.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 31.10.2014, 15:12   #9
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
И в чем проблема? Операция mod в помощь.
или функция odd(x)
Вадим Мошев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамические структуры данных rinoolik Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2012 17:21
динамические структуры данных rinoolik Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2012 17:21
Динамические структуры данных, списковые структуры (надо разобраться что делает программа) _4Alex4_ Помощь студентам 1 14.11.2012 07:39
Динамические структуры данных izoalex Помощь студентам 1 28.12.2011 23:01
Динамические структуры данных Drob Общие вопросы C/C++ 0 03.03.2011 18:34