Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Gluck
Статус: 7-й класс
Рейтинг: 804
∙ повысить рейтинг »
puporev
Статус: Профессионал
Рейтинг: 373
∙ повысить рейтинг »
mklokov
Статус: 8-й класс
Рейтинг: 159
∙ повысить рейтинг »

∙ Pascal / Delphi / Lazarus

Номер выпуска:1797
Дата выхода:22.11.2019, 18:45
Администратор рассылки:Зенченко Константин Николаевич (Старший модератор)
Подписчиков / экспертов:35 / 38
Вопросов / ответов:2 / 2

Консультация # 197052: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Дали задание, ломал голову, так ничего и не придумал, помогите сделать его: Обязательно должно быть реализовано выполнение следующих функций: ∙ добавления элемента в конец, начало, середину (до и после введенного номера). Добавление данных происходит с клавиатуры; ∙ удаления элемента...
Консультация # 197111: Здравствуйте! Прошу помощи в следующем вопросе:Массив из чисел от -20 до 20. Найдите наибольший нечетный элемент и сумму отрицательных элементов массива. в pascal ...

Консультация # 197052:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Дали задание, ломал голову, так ничего и не придумал, помогите сделать его:
Обязательно должно быть реализовано выполнение следующих функций:
∙ добавления элемента в конец, начало, середину (до и после введенного номера). Добавление данных происходит с клавиатуры;
∙ удаления элемента из начала, середины, конца;
∙ очистка списка;
∙ задания конкретного варианта (поиск по заданным полям).
Для решения задач обязательно использовать функции. Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.
Задание:
Счет в банке представляет собой структуру с полями: номер счета, код счета, фамилия владельца, сумма на счете, дата открытия счета, годовой процент начисления. Реализовать поиск по номеру счета владельца.


Дата отправки: 12.11.2019, 14:25
Вопрос задал: Satana666 (1-й класс)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Старший модератор):

Здравствуйте, Satana666!

Смотрите код:

Код (Pascal) :: выделить код
const
  n=20;
type
  tStr=string[n];
  tAccount=record
    name:tStr;
    number:tStr;
    kod:tStr;
    summa:real;
    create:tStr;
    percent:real;
    end;
  plist=^tList;
  tList=record
    Info:tAccount;
    next:pList;
    end;
function EnterData(a:string):string;
  begin
     write('Enter ',a,':');
     readln(a);
     EnterData:=a;
  end;
procedure Showlist(a:pList);
  var
    b:longint;
  begin
    writeln('Show All List:');
    b:=1;
    while a<>nil do
      begin
        writeln(b,' ':3,a^.info.name,' ':3,a^.info.number,' ':3,a^.info.kod);
        a:=a^.next;
        inc(b);
      end;
    writeln('End List');
  end;
procedure Add2List(var a:pList);
  var
    b:integer;
    d,e:pList;
  begin
    d:=a;
    new(e);
    e^.info.name:=EnterData('user name');
    e^.info.number:=EnterData('account number');
    e^.info.kod:=EnterData('account type');
    e^.next:=nil;
    b:=StrToInt(EnterData('position[0-first..n-after]'));
    if(d=nil)or(b=0)then
      begin
        e^.next:=a;
        a:=e;
      end
      else
      begin
        dec(b);
        while(b>0)and(d^.next<>nil)and(d<>nil)do
          begin
            d:=d^.next;
            dec(b);
          end;
        if b=0 then
          begin
            e^.next:=d^.next;
            d^.next:=e;
          end
          else d^.next:=e;
      end;
  end;
procedure FreeList(var a:pList);
  var
    b:pList;
  begin
    while a<>nil do
      begin
        b:=a;
        a:=a^.next;
        dispose(b);
      end;
  end;
procedure FreeItem(a:pList);
  var
    b:integer;
    c,d:pList;
  begin
    b:=StrToInt(EnterData('index'));
    c:=a;
    if b=0 then
      begin
        a:=a^.next;
        dispose(c);
      end
      else if b=1 then
        begin
          c:=a^.next;
          a^.next:=c^.next;
          dispose(c);
        end
        else
        begin
          while(b>1)and(c<>nil)do
           begin
             dec(b);
             c:=c^.next;
           end;
          if b>1 then writeln('record not found')
            else
              begin
                d:=c^.next;
                c^.next:=d^.next;
                dispose(d);
              end;
        end;
  end;
procedure SaveList(a:pList);
  var
    b:string;
    c:file of tAccount;
    d:tAccount;
  begin
    b:=EnterData('file name');
    assign(c,b);
    rewrite(c);
    while a<>nil do
      begin
        write(c,a^.info);
        a:=a^.next;
      end;
    close(c);
  end;
procedure LoadList(var a:pList);
  var
    b:string;
    c:file of tAccount;
    d:pList;
  begin
    b:=EnterData('file name');
    if FileExists(b) then
      begin
        a:=nil;
        assign(c,b);
        reset(c);
        while not EOF(c) do
          begin
            new(d);
            read(c,d^.info);
            d^.next:=a;
            a:=d;
          end;
        close(c);
      end
      else writeln('file ',b,' not found');
  end;
procedure FindItem(a:plist);
  var
    b:tStr;
  begin
    b:=EnterData('number');
    while(a^.next<>nil)or(a^.info.number<>b)do
      a:=a^.next;
    if a^.info.number=b then
      writeln(b,' ':3,a^.info.name,' ':3,a^.info.number,' ':3,a^.info.kod)
      else writeln('not found this record');
  end;
var
  a:pList;
  c:char;
begin
  a:=nil;
  repeat
    write(#10,#10,#10,'Bank',#10,
            '1 - add to list',#10,
            '2 - show list',#10,
            '3 - find item',#10,
            '4 - free item',#10,
            '5 - free list',#10,
            '6 - save to file',#10,
            '7 - load from file',#10,
            '0 - exit',#10,'please select:');
    readln(c);
    if c in ['0'..'7']then
      case c of
        '0':if a<>nil then FreeList(a);
        '1':Add2list(a);
        '2':ShowList(a);
        '3':FindItem(a);
        '4':FreeItem(a);
        '5':FreeList(a);
        '6':SaveList(a);
        '7':LoadList(a);
        end;
  until c='0';
end.

Удачи!

Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 19.11.2019, 16:12
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 197111:

Здравствуйте! Прошу помощи в следующем вопросе:Массив из чисел от -20 до 20. Найдите наибольший нечетный элемент и сумму отрицательных элементов массива. в pascal

Дата отправки: 17.11.2019, 10:31
Вопрос задал: JonMoxley (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Зенченко Константин Николаевич (Старший модератор):

Здравствуйте, JonMoxley!

Смотрите код:

Код (Pascal) :: выделить код
const
  n=20;
var
  a:array[1..n]of integer;
  b,c:integer;
begin
  for b:=1 to n do a[b]:=random(41)-20;
  for b:=1 to n do write(a[b]:4);
  writeln;
  c:=1;
  while(c<n)and((a[c] and 1)=0)do inc(c);
  if c<=n then
    begin
      for b:=c to n do if odd(a[b])and(a[b]>a[c])then c:=b;
      writeln('maximum odd elemtnts:=',a[c]);
    end else writeln('no odd elemtnts');
  c:=0;
  for b:=1 to n do if a[b]<0 then c:=c+a[b];
  writeln('summa negative elements:=',c);
end.

Удачи!

Консультировал: Зенченко Константин Николаевич (Старший модератор)
Дата отправки: 19.11.2019, 11:56
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное