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

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

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

 
 Ответить  Открыть новую тему 
> Строки, слов в строке....
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


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

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

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


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


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


Новичок
*

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

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


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


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

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

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


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


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


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

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

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


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


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


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

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

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


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

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


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.04.2024 21:17
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name