Две задачи для первого курса, Delphi

Тема в разделе "Pascal and Delphi", создана пользователем -, 27 фев 2010.

  1. Гость

    Доброго всем вечерочка, дорогие программисты! :KillMe:
    Не откажите в помощи слабой и беззащитной девочке...
    1 просьба: перевести из паскаля на делфи (с использованием формы) следующую программу:
    Код (Text):
    uses crt;
    var f:file of integer;
    a,mx,k:integer;
    begin
    clrscr;
    assign(f,'file1');
    rewrite(f);
    writeln('Введите целые числа в файл f, окончание ввода 0:');
    repeat
    write('a=');
    readln(a);
    write(f,a);
    until a=0;
    clrscr;
    writeln('Содержание файла f:');
    reset(f);
    read(f,mx);
    while not eof(f) do
    begin
    read(f,a);
    write(a,' ');
    if a>mx then mx:=a;
    end;
    writeln;
    close(f);
    reset(f);
    k:=0;
    reset(f);
    while not eof(f) do
    begin
    read(f,a);
    if a=mx then k:=k+1;
    end;
    close(f);
    write('Максимум =',mx,' количество=',k);
    readln
    end.
    Задание по которому я это писала: Дан файл f1 целых чисел. Определить, сколько раз в нем повторяется максимальное значение.
    2 просьба: Дан файл f1 целых чисел. Определить наименьшее из нечетных чисел и наибольшее из чисел, принадлежащих интервалу [a, b]. Тоже на делфи.
    :welcome:
    Буду премного благодарна! :google:
     
  2. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    Вместо
    readln(a); используйте TEdit чтоб с него считать по кнопке(TButton,TBitButton...)
    assign и close ето в делфи assignfile ; closefile
    write('Максимум =',mx,' количество=',k); TMemo и функцию Memo1.lines.add('Максимум =',mx,' количество=',k)

    Извеняюсь но вы паскаль какой год учите(или у вас в школе програмирования небыло)?


    наименьшее из нечетных чисел
    Код (Text):
    var a:array[1..n] of integer;
    i,min:integer;
    ind:boolean;
    begin
    ind:=true;
    while ind do
    begin
    if a[i] mod 2 <> 0 then begin ind:=false; min:=a[i]; end;
    i:=i+1;
    end;
    for i:=1 to n do
    if (a[i]<min)and(a[i] mod 2<>0) then min:=a[i];
    end;
    наибольшее из чисел, принадлежащих интервалу [a, b]
    Код (Text):
    while ind do
    begin
    if (m[i]>a)and(m[i]<b) then begin ind:=false; max:=m[i]; end;
    i:=i+1;
    end;
    for i:=1 to n do
    if (m[i]>a)and(m[i]<b) then max:=m[i];
    считывание из файла сами сделаете?

    P.S. Извените если нагрубил :newconfus:
    Так как я вижу вы начинающий то пишите в личку или сюда 580470442 чем смогу тем помогу (в аське сужу в основном с 17 до 18)
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а чем Odd(a) не угодила? или ее упразднили уже в делфи?
    замечательная конструкция :newconfus:
    а ведь никто не мешает создать массив из четных чисел или массив из чисел, не принадлежащих диапазону [a, b]?
    Что такое условие выхода из цикла, бесконечный цикл - знаем?
    Любите вылетать по ошибке диапазона массива или как там у вас делфи ругается нынче на такое? ;)

    Добавлено: Насколько я помню, [a, b] подразумевает входение границ в интервал, в отличие от (a, b ).
    Так что второе задание неверно. Да и наибольшее не берется.
    Dock1100, внимательней) /* вдруг девушка с приданым, а Вы ее так подставляете ;) */
    Я напишу на паскале, чтоб совсем шары не было :KillMe:
    Код (Delphi):
    ind := false; max := a; // значение по умолчанию. т.к.ищем наибольшее - ставим минимальное (нижнюю границу).
    for i:=1 to n do
    if (m[i]>=a)and(m[i]<=b) then
    begin
    if not ind then ind := true;
    if m[i]>max then
    max:=m[i];
    end;
    if ind then
    write('Максимум =',max)
    else
    write('Нет чисел в заданном диапазоне!');
    Код написан прямо тут)
     
  4. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    вообщето код я тоже писал тут и не проверял, тем более это достаточно легкие задания особенно для первого курса, поетому и дал ICQ ,просто видно что человек первый год учит паскал, а преподу видемо в лом нормально обяснить.


    a mod 2 <> 0 так мне писать привычней


    знаем, но исходя из условия задачи :
    Дан файл f1 целых чисел. Определить наименьшее из нечетных чисел и наибольшее из чисел, принадлежащих интервалу [a, b].
    там должно быть хоть одно подходящие число, там же не сказано ест ли такие числа или нет. ;)

    Согласен, недосмотрел
    if (m>a)and(m<b)and(max<m) then max:=m;

    А с другой стороны в чем заключается самообучение? :newconfus:
    Не в тупомже скатывании кода :KillMe: , а в его доработке, иногда исправлении.
     
Загрузка...

Поделиться этой страницей