IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Строки, слов в строке....
Lyssa
сообщение 18.12.2010 22:25
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Помогите мне решить задачу. Дан файл, который содержит 4 строки, определить сколько слов имеет количество букв некоторого числа N.

Для одной строки в меня получаеся, а от для 4 не могу...
uses crt;
const
A = ['A'..'Z'] + ['a'..'z'];
var
n,i: Integer;
s: String;
j: Integer;
Num: Integer;
begin
Write('Vedite radoc: ');
readln(s);
end;
Write('Dlina slova: ');
ReadLn(n);


j := 0;
Num := 0;
for i := 1 to Length(s) do
if s[i] in A then
Inc(j)
else begin
if j = n then Inc(Num);
j := 0;
end;
if j=n then Inc(Num);
WriteLn('V radky ', Num, ' clov c dlinoy ', n);
ReadLn;
end.


М
Просьба соблюдать правила.
Правила Форума, п.5, и правила раздела Задачи, п.2

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 7)
Lapp
сообщение 19.12.2010 0:16
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Не совсем понимаю, почему возникла проблема. Просто зацикли и сделай то же самое 4 раза. Я что-то упускаю?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lyssa
сообщение 19.12.2010 0:18
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


Делала, но у меня получается 0.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 19.12.2010 0:25
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Lyssa @ 19.12.2010 0:18) *
Делала, но у меня получается 0.
Так ты приведи ТОТ код, в котором ошибка! Зачем приводить тот, который работает?? похвастать что ли? smile.gif)
Давай код - исправим ошибку ))


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lyssa
сообщение 19.12.2010 0:49
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский

Репутация: -  0  +


const
A = ['A'..'Z'] + ['a'..'z'];
var
n,i: Integer;
s: String;
k,j: Integer;
Num: Integer;
begin
Write('Vedite radoc: ');
for i:=1 to 4 do begin
readln(s[i]);
end;

Write('Dlina slova: ');
ReadLn(n);

k:=0;
j := 0;
Num := 0;
i:=1;
while i<=4 do begin
for i:=1 to Length(s) do
if s[i] in A then
Inc(j)
else begin
if j = n then Inc(Num);
j := 0;
end;
if j=n then Inc(Num);
k:=k+num;
i:=i+1;
end;

WriteLn('V radky ', k,' clov c dlinoy ', n);
ReadLn;
end.


М
Ставь теги!!
Исправил в последний раз.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 19.12.2010 1:15
Сообщение #6


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Слушай - я обижусь, если ты не будешь выполнять правила (и мои просьбы).
Исправь, плз.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 19.12.2010 1:36
Сообщение #7


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Я исправил на этот раз - дальше сама ставь тэги, пожалуйста.

Ты пытаешься использовать строку как массив строк. Но для этого тебе надо было описать s не как строку, а как массив. Ты этого не сделала.
Но я вообще не возьму в толк - зачем ты вводишь строки с консоли, если по условию а тебя текст находится в файле? Короче, ввод надо переделать. Я сейчас набросаю, как..
И массив строк тоже не нужен, можно все подсчитывать прямо при чтении.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 19.12.2010 2:18
Сообщение #8


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Вот, смотри, я сделал, что говорил: взял твое первое решение и зациклил его. Ввод теперь из файла dat.txt, сделай его. Я тестировал на таком:
Цитата
Oh, jingle bells, jingle bells
Jingle all the way
Oh, what fun it is to ride
In a one horse open sleigh

А вот код:
const
A = ['A'..'Z'] + ['a'..'z'];
var
n,i,j,k,Num: Integer;
s: String;
f: text;

begin
Write('Dlina slova: ');
ReadLn(n);
Assign(f,'dat.txt');
Reset(f);
Num := 0;
while not EoF(f) do begin
ReadLn(f,s);
j := 0;
for i := 1 to Length(s) do
if s[i] in A then
Inc(j)
else begin
if j = n then Inc(Num);
j := 0;
end;
if j=n then Inc(Num)
end;
Close(f);
WriteLn('In the file, there are ',Num,' clov c dlinoy ',n);
ReadLn
end.


Совет: убери галку с опции "use Tab characters" - будет меньше мучений как тебе, так и тем, кто тебе помогает..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 21:04
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"