Строки в текстовом файле., Помогите найти ошибку пожалуйста. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Строки в текстовом файле., Помогите найти ошибку пожалуйста. |
Ellsa |
9.12.2006 17:22
Сообщение
#1
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
Здравствуйте всем!Пожалуйста,помогите мне немного...у меня курсач звучит так:
разработать программу анализа текстового файла:определение средней длины слова в каждой строке и формирование файла средних длин построчно.Предусмотреть проверку существования файла и файла частот с выдачей диагностических сообщений. я решила сначала составить программу для одной строки. Код program dddd; var str:string; kol,k,i,n,c,sred:real; begin readln(str); n:=length (str); i:=1; kol:=0; while i<=n do begin k:=0; repeat k:=k+1; i:=i+1; until (str[i]=' ') or (i>n); kol:=kol+k; i:=i+1; end; writeln(kol); for i:=1 to n do if (str[i]=' ') then c:=c+1; if (str[1]=' ') then c:=c-1; if str[n]=' ' then c:=c-1; writeln(c+1); sred:=kol/(c+1); end. но он выдает ошибку на until (str[i]=' ') or (i>n);,а именно на квадратной скобке tupe mismatch пишет. Просто когда я не начинала считать среднее значение-программа шла и все верно считала.А теперь перестала.Я не могу понять,что ему не нравится. и еще вопросик...не подскажите,что значит:Предусмотреть проверку существования файла и файла частот с выдачей диагностических сообщений?Проверку существования файла проверяют функцией IOResult? А файл частот-это что такое? Спасибо заранее. |
Алена |
9.12.2006 17:48
Сообщение
#2
|
Гость |
Цитата Я не могу понять,что ему не нравится. А не нравится ему то, что I описывается, как Real, а по правилам, индексация может производиться только перечислимыми (целые/символьные/пользовательские) типами, но никак не вещественными ... |
Ellsa |
9.12.2006 17:52
Сообщение
#3
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
А не нравится ему то, что I описывается, как Real, а по правилам, индексация может производиться только перечислимыми (целые/символьные/пользовательские) типами, но никак не вещественными ... спасибо большое!Действительно так.А можно еще один вопрос...я вот не могу понять....как по строкам идти?То есть завести цикл до окончания файла,а потом надо идти построчно....как перейти от строки к строке...можете подсказать?Пожалуйста.... и насчет частотного файла...я извиняюсь,что много прошу так... мне правда неудобно... Сообщение отредактировано: Ellsa - 9.12.2006 17:53 |
Ellsa |
9.12.2006 18:24
Сообщение
#4
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
ну хотя бы просто о файле частот....хрен с ними со строками...ща поковыряюсь.А вот про этот файл,если что-нибудь знаете,подскажите пожалуйста.Вообще не понимаю что это....
|
мисс_граффити |
9.12.2006 19:52
Сообщение
#5
|
просто человек Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
со строками все просто:
если ты сделаешь readln(f,s); у тебя считается сначала первая, а потом вторая строка, то есть переход осуществляется автоматически. что за файл частот - не знаю... у меня подозрение, что у кого-то в вашей группе есть задание "определить частоту вхождения букв в файл", и тебе досталось второе предложение от него... то есть на самом деле там должно быть "файл длин". но это так... гадание на кофейной гуще. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Ellsa |
9.12.2006 19:56
Сообщение
#6
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
да нет,так написано почти у всех,у кого курсовик на файлы....
я вот по строкам пытаюсь перейти...но столкнулась с проблемой открытия файла....это я сейчас поищу на форуме...но меня интересует еще одна проблема...мне надо знать количество строк,чтоб потом сделать массив из средних длин слова,который будет иметь столько составляющих,сколько строк в файле...но когда я пишу что sred=array[1..n] of real; и вычисляю n в программе самой,то он пишет,что он его не знает....я понимаю,что в тот момент,когда я описываю массив в разделе описаний он действительно не знает n...но я не знаю как написать по-другому.... |
Ellsa |
9.12.2006 20:20
Сообщение
#7
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
нет,не знаю я как избавится от ошибки 104...в поиске ничего не нашла.
|
мисс_граффити |
9.12.2006 20:25
Сообщение
#8
|
просто человек Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
а зачем тебе массив, собственно?
пиши сразу в результирующий файл. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Ellsa |
9.12.2006 20:28
Сообщение
#9
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
а зачем тебе массив, собственно? пиши сразу в результирующий файл. хм...наверно это возможно,да....попробую....спасибо. Только я все-таки не понимаю...что такое ошибка 104.... я может плохо умею пользоваться поиском....но у меня пока никаких мыслей на ее исправление..... Сообщение отредактировано: Ellsa - 9.12.2006 20:28 |
Ellsa |
9.12.2006 20:48
Сообщение
#10
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
что-то я еще больше во всем этом запуталась....
не буду я делать проверку на существование исходного файла частот...но хоть прогу сделать бы...ведь еще блок-схему потом рисовать.... скажите,пожалуйста,может я не тем методом каким-нибудь решаю? Может надо другой подход? Что-то ничерта не идет ничего.... |
Bokul |
9.12.2006 20:55
Сообщение
#11
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
С каждым своим сообщением ты все больше запутываешь задачу, опиши, где возникли проблемы и выложи исходник, тогда поговорим .
-------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Ellsa |
9.12.2006 21:14
Сообщение
#12
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
я пока вот на этом остановилась:
program ddd; не открывает файл...f1....я уже сама не пойму,чего от меня хотят.... а ты не знаешь что такое частотный файл? Сообщение отредактировано: Ellsa - 9.12.2006 21:15 |
Bokul |
9.12.2006 21:20
Сообщение
#13
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата а ты не знаешь что такое частотный файл? По условию я понял, что это файл-результат, куда ты записываешь среднею длину слов в строке. Или это не то? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Ellsa |
9.12.2006 21:22
Сообщение
#14
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
|
мисс_граффити |
9.12.2006 21:43
Сообщение
#15
|
просто человек Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
не вижу строчки assign(f1,чего-нибудь)
и сделай нормальные отступы! невозможно читать код -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Bokul |
9.12.2006 21:48
Сообщение
#16
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Вот, глянь, что я накалякал:
Скажи, это то, что тебе надо? Файл для испытаний: Сообщение отредактировано: Bokul - 9.12.2006 21:50 Прикрепленные файлы source.txt ( 33 байт ) Кол-во скачиваний: 149 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Ellsa |
9.12.2006 21:53
Сообщение
#17
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
program ddd; Bokul я здесь ничего не понимаююююююююю..... мы с такими функциями на уроках не решали....я конечно же узнаю все,как это делал ты....пойму,но на это нужно определенное время и я не знаю,то ли это..... и еще...у меня сейчас проблема главная в том,что файл не открывается....а так я даже не знаю....пашет ли у меня программа. Спасибо тебе большое,что отликнулся!Просто я пока не знаю,то ли это.Но наверно то. Сообщение отредактировано: Ellsa - 9.12.2006 21:49 |
Bokul |
9.12.2006 22:03
Сообщение
#18
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата мы с такими функциями на уроках не решали....я конечно же узнаю все,как это делал ты....пойму,но на это нужно определенное время и я не знаю,то ли это... Если надо, могу написать комментарии или написать тоже самое, но без функций. Цитата а так я даже не знаю....пашет ли у меня программа. Сейчас посмотрим -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Ellsa |
9.12.2006 22:06
Сообщение
#19
|
lehf Группа: Пользователи Сообщений: 115 Пол: Женский Репутация: 4 |
Bokul
просто я боюсь,что она подумает,что я не сама решила и подумает правильно. если я правильно понимаю,то первая функция равнозначна по сути ioresult.... вторая-режет на слова. Дальше я еще не успела даже прочитать,но я увидела Цитата begin if not(FileExist(SourceFile)) then begin writeln('SourceFile does not exist'); exit; end; и меня последнее слово смутило...надеюсь это не что-то типа break?Она тада заброкует прогу. Сообщение отредактировано: Ellsa - 9.12.2006 22:07 |
Bokul |
9.12.2006 22:18
Сообщение
#20
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Цитата вторая-режет на слова. А нам и на слова резать не надо, только посчитать количество букв и слов в строке. Цитата и меня последнее слово смутило...надеюсь это не что-то типа break?Она тада заброкует прогу. Она выйдет из проги в случае неправильного открытия файла. В твоем коде, если пользователь введет неправильное имя файла, прога напишет сообщения об этом, и потом вылетит с ошибкой, а при помощью exit она сделает тоже самое, но без ошибки. Смотри, что дает хорошое форматирование кода
Столько ошибок видно, конечно она не правильно работает Сообщение отредактировано: Bokul - 9.12.2006 22:26 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Текстовая версия | 28.03.2024 16:47 |