![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
zoo |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 4 Регистрация: 15.10.2008 Город: уфа ![]() |
Имеется текстовый файл(не менее 5 строк). Напечатать номер самой длинной строки. Напечатать все строки, содержащие в качестве фрагмента текст "ба".
|
![]() ![]() |
Inspektor |
![]()
Сообщение
#2
|
Аспирант ![]() ![]() ![]() Группа: Активисты Сообщений: 384 Регистрация: 11.6.2008 Город: Крыжополь Учебное заведение: БГТУ Вы: студент ![]() |
А вопрос-то какой? Это типичная школьная задача на трояк.
|
zoo |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Продвинутые Сообщений: 4 Регистрация: 15.10.2008 Город: уфа ![]() |
Составить программу,которая выводит номер самой длинной строки и строки, содержащие фрагмент. Я пропустил пару уроков и тему не понял. Это контрольная задача. Помоги, пожалуйста.
|
Inspektor |
![]()
Сообщение
#4
|
Аспирант ![]() ![]() ![]() Группа: Активисты Сообщений: 384 Регистрация: 11.6.2008 Город: Крыжополь Учебное заведение: БГТУ Вы: студент ![]() |
Помочь мы всегда рады, но решать за тебя не будем. Пиши свой вариант решения, а мы его подправим.
|
zoo |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Продвинутые Сообщений: 4 Регистрация: 15.10.2008 Город: уфа ![]() |
у меня вообще нет вариантов. я не знаю,как работать с отдельными строками,как их сравнивать. могу только оболочку программы:
program z24; uses wincrt; var f:text;x,k:integer;s:string; begin assign(f,'C:\Program Files\PASCAL\BIN\44.text'); reset(f); while not eof(f) do begin while not eoln(f) do begin read(f,x); дальше не знаю,какой нужен счетчик,оператор. для вычисления самой длинной строки наверно нужен length но что с чем сравнивать? напишите хотя бы основные строчки и счетчики. пожалуста, завтра уже надо! |
tig81 |
![]()
Сообщение
#6
|
Академик ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 15 617 Регистрация: 15.12.2007 Город: Украина, Запорожье Учебное заведение: ЗНУ Вы: преподаватель ![]() |
дальше не знаю,какой нужен счетчик,оператор. для вычисления самой длинной строки наверно нужен length но что с чем сравнивать? напишите хотя бы основные строчки и счетчики. пожалуста, завтра уже надо! т.е., если я правильно понимаю, вам надо при помощи оператора length найти длину всех строк и сравнить их между собой. Хотя могу и ошибаться. |
Inspektor |
![]()
Сообщение
#7
|
Аспирант ![]() ![]() ![]() Группа: Активисты Сообщений: 384 Регистрация: 11.6.2008 Город: Крыжополь Учебное заведение: БГТУ Вы: студент ![]() |
Цитата т.е., если я правильно понимаю, вам надо при помощи оператора length найти длину всех строк и сравнить их между собой. Хотя могу и ошибаться. Исходя из формулировки задачи этот вариант не корректен. Длинна строки в файле не ограничена, а функция Length работает только с типом данных string, размер которого ограничен 256 байтами- 255 слотов под символы. Самое простое это читать строки посимвольно. Код n:=0; {номер самой длинной строки} k:=1; {текущая строка} l:=0; {число символов в самой длинной строке} while not eof(f) do i:=0; begin while not eoln(f) do begin read(f,c); Inc(i); end; if i>l then begin l:=i; n:=k; end; Inc(k); end; В условии не сказано что делать при нескольких одинаково длинных строках, поэтому приоритет здесь у первых. Если предположить, что длинна строк в файле не привышает 255 символов, то задача сильно упрощается. |
tig81 |
![]()
Сообщение
#8
|
Академик ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 15 617 Регистрация: 15.12.2007 Город: Украина, Запорожье Учебное заведение: ЗНУ Вы: преподаватель ![]() |
|
zoo |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Продвинутые Сообщений: 4 Регистрация: 15.10.2008 Город: уфа ![]() |
что такое Inc(i), Inc(k)? вот такой вариант как вам:
program CW; uses wincrt; var F:text; i, x: integer; a:string; begin assign (F,'C:\Program Files\PASCAL\BIN\44.text'); reset(F); read(F,a); x:=length(a); while not eof(F) do begin readln(F,a); if x<length(a) then x:=length(a); i:=pos('áà',a); if i<>0 then writeln(a); end; writeln (x); close(f); end. это мне решили, но не уверены. |
Inspektor |
![]()
Сообщение
#10
|
Аспирант ![]() ![]() ![]() Группа: Активисты Сообщений: 384 Регистрация: 11.6.2008 Город: Крыжополь Учебное заведение: БГТУ Вы: студент ![]() |
Цитата что такое Inc(i), Inc(k)? Инкремент. Тоже самое что i:=i+1, только обрабатывается компилятором по-другому. i:=i+1 обрабатывается независимо от того, какого типа i, поэтому при целочисленном i выгоднее использовать inc, который компилятор странслирует в бинарный код как Inc или Add. Теперь внимательно читаем седьмой пост и видим почему в данной формулировке это не верное решение. Далее если предположить, что длинна строк меньше 256 символов то: 1) Зачем первая и вторая строки? 2) Полагаю, что в седьмой строке ReadLn. 3) Вы нашли число символов в самой длинной строке, а не её номер. 4) Код if x<length(a) then x:=length(a); Лучше не вызывать функцию 2 раза подрят, а ввести ещё одну переменную. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 21:45 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru