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

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

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

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


Новичок
*

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

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


задана запись ,состоящая из букв , кол-во букв кратно N . Всего в записи M слов длинной N. Составить программу печати слова с заданным номером A.

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


Новичок
*

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

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


Цитата(Krono @ 14.12.2008 18:11) *

задана запись ,состоящая из букв , кол-во букв кратно N . Всего в записи M слов длинной N. Составить программу печати слова с заданным номером A.

задали недавно , не получается никак сделать , сдавать надо через 2 дня

помогите пожалуйста cray.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


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

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

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


Цитата(Krono @ 14.12.2008 18:11) *
не получается никак сделать
Ты покажи, что получается.

Условие ты описал нечетко. Может, по твоей проге будет понятнее.


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


Новичок
*

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

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


вообщем смысл всей моей программы:
1. создать строку с заданным кол-вом букв и слов
2. пронумеровать все слова строки (не могу понять как это делается)
3. вывести слово с заданным номером на экран (ввод номера с клавиатуры)

в инсте нам вообще ничего не объясняют , просто дают задание и делай что хочешь
я пытаюсь сам сделать , но в паскале я мало что понимаю

пример меню выкладываю
  var
a:char;
b,pos,n,m,g,i:byte;
str,str0:string;
iocode:integer;
key,key_2:char;
name:string;
f:text;
begin
clrscr;
writeln('otkuda budete wwodit dannije?');
writeln('1 - s klaviatyrj');
writeln('2 - iz fajla');
readln (key);
case key of
'1': begin
writeln('vvedite proverjaemi simvol');
readln(a);
writeln('vvedite dliny slova');
readln(b);
writeln('vvedite kol-vo slov');
readln(m);
writeln('vvedite stroky dlinoi ',m*b);
readln(str);
WriteLn(' Vvedite save or not save file ');
WriteLn(' Save rezault 1-yes 2-no');
Readln(key_2);
case key_2 of
'1':begin
repeat
Writeln(' soxraniau,vvedite name==>');
readLn(name);
assign(f,name);
{$I-}
rewrite(f);
{$I+}
iocode:=ioresult;
if iocode<>0 then WriteLn('oshibka vvoda!!!');
until(iocode=0);
write(f,str);
close(f);
end;
'2':WriteLn(' ne soxraniau');
else begin { oshibka vvoda faila}
writeLn(' vvod ne correckten');
WriteLn(' fail ne budet soxranen!!!');
end;
end;
end;
'2': begin
repeat
WriteLn('vvedite imia fail');
readln(name);
assign(f,name);
{$I-}
reset(f);
{$I+}
iocode:=ioresult;
if iocode<>0 then WriteLn('Faila ',name,' po dannomu pyti net!');
Until iocode=0;
read(f,str);
WriteLn(str);
close(f);
end;
else
begin
Writeln(' nepravelno vveden kod simvola');
WriteLn(' programma zaversena ');
WriteLn(' exit after KeyPressed ');
Repeat until keyPressed;
exit;
end;
end;

begin
pos:=0;
n:=1;
g:=b;
i:=1;
while pos<=(m*b) do begin
if str[pos+1]=a then begin
pos:=pos+b;
for pos:=n to g do
str0:=str0+str[pos];
writeln('slovo ',i,str0);
i:=i+1;
end
else pos:=pos+b;
n:=n+b;
g:=g+b;
delete(str0,1,length(str0));
end;
readkey;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


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


mea culpa
*****

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

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


Возможно, так?

const n=100;
var s,s2:string;
a,b,m,m2:integer;
mas1:array[1..n] of byte;
begin
writeln('Vvedite dlinu slova,kratnuyu 100');
readln(m);
if 100 mod m <> 0 then begin
writeln('Vvedennoe chislo ne kratno 100!');
readln;
halt;
end;
writeln('Vvedite sapis');
readln(s);
b:=1;
for a:=1 to 100 div m do
begin
mas1[a]:=b;
b:=b+m;
end;
writeln('Vvedite nomer slova dlya poiska');
readln(m2);
s2:=copy(s,mas1[m2],m);
writeln(s2);
readln;
end.




--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


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

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

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


Цитата(Krono @ 14.12.2008 18:11) *
задана запись ,состоящая из букв , кол-во букв кратно N . Всего в записи M слов длинной N.
Насколько я понял, места для пробелов не остается. Слова определяются только координатами.

Цитата(Krono @ 18.12.2008 21:03) *
пример меню выкладываю
При чем тут вообще меню? blink.gif В задаче про меню ни слова..

Цитата(Unconnected @ 20.12.2008 21:06) *
Возможно, так?
Unconnected в своем репертуаре.. smile.gif
1. Почему в программе жестко задано число 100? Про него что-то есть в условии?..
2. Ты понимаешь кратность с точностью до наоборот: кратно значит "делится на", а у тебя по смыслу "является множителем".
3. В задании сказано создать запись, а ты просишь ее ввести..

Но принцип решения в целом верный. Вот вариант, основанный на том же принципе, и свободный от перечисленных недостатков. По-прежнему вся запись хранится в переменой типа string, поэтому общее количество букв ограничено 255.
const
e='Mnogovato budet..';

var
n,m,i: integer;
s: string;

begin
repeat
repeat
Write('Vvedite kolichestvo slov: ');
ReadLn(m);
if m>255 then WriteLn(e)
until m<255;
repeat
Write('Vvedite chislo bukv v slove: ');
ReadLn(n);
if n>255 then WriteLn(e)
until n<=255;
if m*n>255 then WriteLn(e)
until m*n<=255;
s:='';
for i:=1 to m*n do s:=s+Chr(Random(28)+65);
WriteLn('Sozdana zapisj:');
WriteLn(s);
repeat
Write('Vvedite nomer iskomogo slova: ');
ReadLn(i);
if i>m then WriteLn(e)
until i<=m;
WriteLn('Vot vashe slovo: ',Copy(s,n*(i-1)+1,n))
end.



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


mea culpa
*****

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

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


blink.gif Сорри, про кратность действительно перепутал...



--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


mea culpa
*****

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

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


Кстати, Lapp, а в твоей программе разве не нужно было написать randomize?
Или это сделано специально? smile.gif

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

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

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


меню требует препод,
смысл меню:
1)
1. ввести все данные с клавиатуры.
2.создать фаил , заполнить его текстом.
3.сохранить текст в файле.
2)
использовать фаил , пронумеровать все слова.
вывести нужное слово (с нужным номером).
3) просто выход из программы).

wink.gif

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


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

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

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


Цитата(Unconnected @ 21.12.2008 13:51) *
Кстати, Lapp, а в твоей программе разве не нужно было написать randomize?
Или это сделано специально?
А зачем? В некотором смысле - специально. Randomize пишется тогда, когда программа готова к сдаче в эксплуатацию. При отладке (в большинстве случаев) гораздо удобнее без него: повторяемость результатов, как правило, облегчает этот процесс. За исключением, конечно, тех случаев, когда важна именно неповторяемость. Обычно это происходит после первого этапа, когда убедишься, что сам по себе процесс заполнения работает правильно. Данный случай - не тот. Я вообще не вижу в задании ни слова о случайности. Надо было создать запись - я создал.

Цитата(Krono @ 21.12.2008 20:39) *
меню требует препод,
Меню - отдельная задача, не упомянутая в условии. Если надо, то советую сделать две вещи:
1. поиск по Форуму (просто сотни меню гарантирую);
2. если вопрос останется - создать новую тему.

Добавлено через 2 мин.
Цитата(Unconnected @ 21.12.2008 13:30) *
blink.gif Сорри, про кратность действительно перепутал...
Свершилось чудо: Unconnected признал свою ошибку и извинился! smile.gif
Это явно стоит плюс единицы в репутации.. smile.gif
+1, прибавлено


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

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

 





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