• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

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

  • Автор темы Guest
  • Дата начала
G

Guest

Доброго всем вечерочка, дорогие программисты! :KillMe:
Не откажите в помощи слабой и беззащитной девочке...
1 просьба: перевести из паскаля на делфи (с использованием формы) следующую программу:
Код:
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:
 
D

Dock1100

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

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


наименьшее из нечетных чисел
Код:
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]
Код:
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)
 
H

hosm

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

Добавлено: Насколько я помню, [a, b] подразумевает входение границ в интервал, в отличие от (a, b ).
Так что второе задание неверно. Да и наибольшее не берется.
Dock1100, внимательней) /* вдруг девушка с приданым, а Вы ее так подставляете ;) */
Я напишу на паскале, чтоб совсем шары не было :KillMe:
Код:
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('Нет чисел в заданном диапазоне!');
Код написан прямо тут)
 
D

Dock1100

вообщето код я тоже писал тут и не проверял, тем более это достаточно легкие задания особенно для первого курса, поетому и дал ICQ ,просто видно что человек первый год учит паскал, а преподу видемо в лом нормально обяснить.

а чем Odd(a) не угодила? или ее упразднили уже в делфи?

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


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

Так что второе задание неверно. Да и наибольшее не берется.

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!