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

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

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

 
 Ответить  Открыть новую тему 
> найти среднюю длину слов в массиве строк и заменить нею слова последней строки
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Владимир

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


найти среднюю длину слов в массиве строк и заменить нею слова последней строки (размерность массива 12)
среднюю длину вроде нахожу а как замену сделать ? как не введу постоянно не правильно помогите пожалуйста

Var S : string;
NumWords,
NumLetters,
k1,k2,
l : byte;
MiddleLet : real;
Cond : boolean;
Begin
Readln(S);
Writeln('S=',S);
NumWords:=0;
NumLetters:=0;
MiddleLet:=0;
k2:=0; Cond:=true;
While Cond do
Begin
k1:=NotSpace(S,k2+1);
If k1=0 then
Cond:=false
Else
Begin
k2:=Space(S,k1+1);
If k2=0 then
Begin
k2:=length(S)+1;
Cond:=false;
End;
l:=k2-k1;
Inc(NumWords);
Inc(NumLetters,l);
End;
End;
Writeln('кол-во слов=',NumWords,' кол-во букв=',
NumLetters);
If NumWords>0 then
MiddleLet:=NumLetters/NumWords;
Writeln('средняя длина=',MiddleLet:6:1);
End.


Сообщение отредактировано: INZA -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


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

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

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


Цитата(INZA @ 19.12.2010 21:42) *
заменить нею слова последней строки
А что это значит?.. blink.gif


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


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Владимир

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


Цитата(Lapp @ 20.12.2010 5:23) *

А что это значит?.. blink.gif

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


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

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

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


Цитата(INZA @ 20.12.2010 18:36) *
цифрой ну например ср.длина слов 5 букв
Мне все равно непонятно. В таких случаях лучше всего привести пример.

Исходный файл text.txt:
Цитата
Hark how the bells,
sweet silver bells,
all seem to say,
throw cares away
Christmas is here,
bringing good cheer,
to young and old,
meek and the bold.
Ding dong ding dong
that is their song
with joyful ring
all caroling.

На нем вот эта моя программа:
const
m=12;
fName='text.txt';
Letters=['A'..'Z']+['a'..'z'];

var
s: array [1..m] of string;
l,n: LongInt;
i,j: integer;
w: string;
f: text;

begin
Assign(f,fName);
Reset(f);
for i:=1 to m do ReadLn(f,s[i]);
Close(f);
l:=0;
n:=0;
for i:=1 to m do begin
w:='';
for j:=1 to Length(s[i]) do begin
if s[i][j] in Letters then w:=w+s[i][j];
if not (s[i][j] in Letters) or (i=Length(s[i])) then
if w<>'' then begin
l:=l+Length(w);
Inc(n);
w:=''
end
end
end;
WriteLn('Average word length is ',l/n:0:3);
ReadLn
end.

- дает такой результат:
Average word length is 4.200


И что теперь делать? Вот так что ли:
Цитата
Hark how the bells,
sweet silver bells,
all seem to say,
throw cares away
Christmas is here,
bringing good cheer,
to young and old,
meek and the bold.
Ding dong ding dong
that is their song
with joyful ring
4.2 4.2.
- ? blink.gif
Я как-то сомневаюсь, что такое могло прийти в голову составителю этой задачи. Но - всякое бывает..
Пояснишь?


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


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Владимир

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


получается что так.я сам в недоумениях от таких задач но какая есть такая есть wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


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

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

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


Цитата(INZA @ 21.12.2010 9:45) *
получается что так.я сам в недоумениях от таких задач но какая есть такая есть wacko.gif
Ну, тогда вот - средняя длина у тебя есть. С заменой справишься? Для
получения записи числа используй процедуру Str.


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


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Владимир

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


Цитата(Lapp @ 21.12.2010 11:33) *

Ну, тогда вот - средняя длина у тебя есть. С заменой справишься? Для
получения записи числа используй процедуру Str.

да справлюсь. Спасибо большое yes2.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Владимир

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


нужно найти среднюю длину и заменить нею слова последней строки.
выходит ошибка скажите что я делаю не правильно
program h7V4Z7;
Uses crt;
type str=array [1..40] of string;
const
m=12;
Letters=['A'..'Z']+['a'..'z'];
procedure VVod_klav(var x:str;var n:integer);
var i:integer;
begin
writeln ('koli4ectBo strok',n);
for i:=1 to n do
begin
writeln('vvedite s[',i,']');
readln(x[i]);
end;
writeln ('text cformipovovan');
readkey;
end;
procedure VVod_avt(var X:str; var n:integer);
var i:integer;
begin
X[1]:='Hark how the bells';
X[2]:='sweet silver bells';
X[3]:='all seem to say';
X[4]:='throw cares away';
X[5]:='Christmas is here';
X[6]:='bringing good cheer';
X[7]:='to young and old';
X[8]:='meek and the bold';
X[9]:='Ding dong ding dong ';
X[10]:='that is their song ';
X[11]:='with joyful ring ';
X[12]:='all caroling';
N:=12;
writeln;
writeln('text cformiroBoBaH');
end;
procedure Vivod(var X:str; size:integer);
var i:integer;
begin
for i:=1 to size do
writeln (X[i])
end;
Var
s: str;
l: LongInt;
i,j,n: integer;
x,w: string;
f: text;
y:byte;
old_color:byte;
ch,regim:char;
result,VVod:boolean;
res:real;
Begin
Old_Color:=Textattr;vvod:=false;
Repeat
window(1,1,80,25);
textattr:=black shl 4+yellow;
clrscr;
gotoxy(5,1); write(' labopatopHa9 Pabota #7');
window(20,8,60,18);
textattr:=black shl 4+yellow;
clrscr;
gotoxy(11,4); write(' F1 - BBod ctpok');
gotoxy(11,5); write(' F2 - BuBod ctpok');
gotoxy(11,6); write(' F3 - obpabotka ctrok');
gotoxy(11,7); write(' F4 - o nporpamme ');
gotoxy(11,8); write(' Esc - Exit ');
textcolor(yellow); gotoxy(12,2);write(' Baw Bubop? ');
ch:=Readkey;
if ch=#0 then
Begin
ch:=Readkey;
window(5,2,75,24);
textattr:=black shl 4+yellow;
clrscr;
case ch of
#59:Begin
write ('regim BBoda (1-s klabuatypi/2-abtomatu4eckoe fopmupoBaHue)');
regim:=readkey;
case regim of
'1':begin
writeln;
writeln('VVedute kolu4ectBo ctpok,N= ');readln(n);
vvod_klav(s,n);
VVod:=true;
readkey;
end;
'2':begin
begin
clrscr;
VVod_avt(s,n);
VVod:=true;
readkey;
end;
if vvod then writeln ('ctpoku bbedehu' )
else writeln ('ctpoku He BBedeHu');
readkey;
End;
#60:Begin
if vvod then
vivod(s,n)
else writeln('text ne vveden');
readkey;
end;
#61:Begin
vivod(s,n);
writeln;
if VVod then writeln ('ctpoku bbedehu' )
else writeln ('ctpoku He BBedeHu');
readkey;
l:=0;
n:=0;
for i:=1 to m do
begin
w:='';
for j:=1 to Length(s[i]) do
begin
if s[i][j] in Letters then w:=w+s[i][j];
if not (s[i][j] in Letters) or (i=Length(s[i])) then
if w<>'' then
begin
l:=l+Length(w);
Inc(n);
w:='';
end;
end;
end;
WriteLn('srednaia dlina ',l/n:0:3);
ReadLn;
begin
for i:=length(X) downto 1 do
if x[12]='all' or x[12]='caroling'
then insert(l/n,x[1],1);
begin
write('rezyltat');
readkey;
end;
end;
end;
#62:Begin
writeln('Onepacuu c massiBamu ctpok');
writeln('Haxo}|{deHue cpedheu dluHHu ctpok');
writeln('zameHa dluHHou cloBa nocledhei ctpoku');
Readkey;
End;
end;
end;
until(ch=#27);
window(1,1,80,25);
textattr:=Old_Color;
clrscr;
END.


Сообщение отредактировано: мисс_граффити -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


ошибка выскакивает из-за порядка операций... поставь скобочки:
if (x[12]='all') or (x[12]='caroling')


дальше, правда, у тебя идет неправильный вызов insert. посмотри в хелпе, какие у него аргументы должны быть. и смысл этого условия я не поняла. а если текст другой дадут? все, не будет программа работать?

Сообщение отредактировано: мисс_граффити -


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


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

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

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


Эта тема, на самом деле, есть продолжение вот этой: найти среднюю длину слов в массиве строк и заменить нею слова последней строки . Оттуда и ноги растут, как я понимаю..

Юль, объедини их, пожалуй, пожалуйста.. ))


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


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Владимир

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


эту просто как дополнительно дали сделать а первую я уже сделал
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 3.05.2024 17:05
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name