16.12.2011, 23:04 | #1 (permalink) |
Member
Регистрация: 16.12.2011
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите с задачкой
|
16.12.2011, 23:04 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Прошу вас, ознакомьтесь с похожими темами Помогите с задачкой пожалуйста по С++. Помогите с задачкой Помогите с задачкой на сортировку обменом Помогите с задачкой по графике |
16.12.2011, 23:12 | #2 (permalink) |
Member
Регистрация: 16.12.2011
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
program Rozklad;
{$APPTYPE CONSOLE} uses SysUtils; var myfile: text; zvidku: string[10]; kyda: string[10]; chas: real; begin assign (myfile ,'C:\Documents and Settings\Пользователь\Рабочий стол\АМП\ьбт\poizd.txt'); reset (myfile); while not eof (myfile) do begin readln (myfile, zvidku, kyda, chas); if kyda='Kiev ' then writeln (zvidku:10, kyda:10, chas:2:2); end; close (myfile); readln end. Что не правильно подзкажите.... |
17.12.2011, 11:03 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Выложите, пожалуйста, сам файл, чтобы можно было поместить его в нормальную (без, упаси Боже, кириллицы в путях!) директорию и запустить программу.
А так, на взгляд: требуется вывести данные о поездах, отправляющихся в Киев после 19:00, а значит нужно время отправления преобразовать в численный формат и вместо if kyda='Kiev ' (кстати, никакого пробела после "v" быть не должно!) записать if (kyda='Kiev') and ({время отправления в числовом формате}>={19:00 тоже в числовом формате}) Могу помочь с конкретной реализацией, но только, повторяю, после того, как будет выложен файл данных. |
17.12.2011, 19:58 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну извольте (как видите, не так-то уж и просто):
Код:
var myfile: text; S,zvidku,kyda,time: string; chas: real; i,Code:Integer; begin assign(myfile ,'D:\poizd.txt'); reset(myfile); while not eof (myfile) do begin readln(myfile,S); i:=1; zvidku:=''; while S[i]<>' ' do begin zvidku:=zvidku+S[i]; Inc(i); end; while S[i]=' ' do Inc(i); kyda:=''; while S[i]<>' ' do begin kyda:=kyda+S[i]; Inc(i); end; while S[i]=' ' do Inc(i); time:=''; while i<=length(S) do begin time:=time+S[i]; Inc(i); end; VAL(time,chas,Code); if (kyda='Kiev') and (chas>=19.0) then begin write(zvidku); for i:=length(zvidku)+1 to 10 do write(' '); writeln(kyda+' '+time); end; end; close (myfile); readln end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
17.12.2011, 20:31 | #7 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
В принципе, если структура входного файла жестко задана по позициям, то можно и существенно короче, как Вы с самого начала хотели, т.е. используя размерные строки. Но тогда так:
Код:
var myfile: text; zvidku,kyda: string[10]; chas: real; i:Integer; begin assign(myfile ,'D:\poizd.txt'); reset(myfile); while not eof (myfile) do begin readln(myfile,zvidku,kyda,chas); if (kyda='Kiev ') and (chas>=19.0) then begin write(zvidku); for i:=length(zvidku)+1 to 10 do write(' '); writeln(kyda,chas:7:2); end; end; close (myfile); readln end. |
17.12.2011, 21:23 | #9 (permalink) |
Member
Регистрация: 16.12.2011
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
а вы не могли бы посмотреть еще эту задачу
нужно создать файл целых чисел (количество элементов файла и сами элементы вводятся с клавиатуры). Добавить элемент в конец файла. Выводить на экран содержимое нового файла. |
17.12.2011, 21:51 | #10 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Var f:Text; n:Integer; C:Char; BEGIN Assign(f,'D:\fff'); Rewrite(f); Close(f); Repeat Write('Next n (Y/N)? '); Readln(C); If (C='Y') or (C='y') then begin Append(f); Write('n= '); Readln(n); Writeln(f,n); Close(f); end else begin Write('Show file (Y/N)? '); Readln(C); If (C='Y') or (C='y') then begin Reset(f); Repeat Readln(f,n); Write(n,' '); Until EoF(f); Close(f); Writeln; end; end; Until (C='N') or (C='n'); END. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|