Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 819

/ вопрос открыт /

Приветствую, уважаемые эксперты!Помогите доделать задачу на паскале. Тема компонентные файлы.
Дан файл f простых чисел, записаных в порядке возростанния. Вырезать с него все числа с парной сумой цифр.

Приложение:
  1. program fgf;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. type Complex=record
  9. d,m:integer;
  10. end;
  11. var
  12. f1:text;
  13. f2:file of Complex;
  14. x:Complex;
  15.  
  16. begin
  17. assign(f1,'E:Óíèâåðìîè ðàáîòûÔàéëûinpu.txt'); reset(f1);
  18. assign(f2,'E:Óíèâåðìîè ðàáîòûÔàéëûoutpu.res'); rewrite(f2);
  19. while not eof(f1) do
  20. begin
  21. read(f1, x.d , x.m);
  22. if (x.d+x.m) mod 2 = 0 then
  23. write(f2,x);
  24. end;
  25. close(f1);
  26. close(f2);
  27. end.


Дементьев Евгений Владимирович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Дементьев Евгений Владимирович (статус: Посетитель)
Вопрос отправлен: 26 февраля 2010, 16:17
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Валя

Здравствуйте, Дементьев Евгений Владимирович!

program Project2;
{$APPTYPE CONSOLE}
 
uses
SysUtils;
 
type Complex=record
d,m:integer;
end;
var
f1:text;
f2:file of Complex;
x:Complex;
  function summ(x: integer): integer;
  var i: integer; s: string;
  begin
    result:=0;
    s:=inttostr(x);
    for i:=1 to length(s) do
       result:=result+strtoint(s[i]);
  end;
begin
assign(f1,'E:Oieaa?iie ?aaiouOaeeuinpu.txt'); reset(f1);
assign(f2,'E:Oieaa?iie ?aaiouOaeeuoutpu.res'); rewrite(f2);
while not eof(f1) do
begin
read(f1, x.d , x.m);
if summ(x.d)=summ(x.m) then
write(f2,x);
end;
close(f1);
close(f2);
end.

Ответ отправил: Валя (статус: 1-ый класс)
Время отправки: 26 февраля 2010, 16:50


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 1 марта 2010, 19:11; участников в обсуждении: 3.
Алексей Комнин

Алексей Комнин (статус: Посетитель), 26 февраля 2010, 17:07 [#1]:

ваша программа почемуто создаёт пустой файл.
min@y™

min@y™ (статус: Доктор наук), 26 февраля 2010, 18:23 [#2]:

Цитата (Валя):


  function summ(x: integer): integer;
  var i: integer; s: string;
  begin
    result:=0;
    s:=inttostr(x);
    for i:=1 to length(s) do
       result:=result+strtoint(s[i]);
  end;

Ты серьёзно, или прикалываешься?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 26 февраля 2010, 18:28 [#3]:

Цитата (Дементьев Евгений Владимирович):

Вырезать с него все числа с парной сумой цифр.

Что это такое - парная сум(м)а цифр?
Ё-моё, парная - это ж помещение в бане! Какие нафиг цифры?!!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Алексей Комнин

Алексей Комнин (статус: Посетитель), 26 февраля 2010, 20:03 [#4]:

парная это чётная)))
Егор

Егор (статус: 10-ый класс), 28 февраля 2010, 13:56 [#5]:

Цитата (Валя):

if summ(x.d)=summ(x.m)

это - условие чётности?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Егор

Егор (статус: 10-ый класс), 28 февраля 2010, 13:58 [#6]:

Дементьев Евгений Владимирович:
я не совсем понял, что же именно вы хотите?
у вас же и так программа делает то, что вы хотите.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Алексей Комнин

Алексей Комнин (статус: Посетитель), 1 марта 2010, 19:11 [#7]:

может проблемка с кодировкой? файл создаёться с символами а не цыфрами.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:00
Выполнено за 0.04 сек.