Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 448
от 24.09.2007, 10:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 247, Экспертов: 53
В номере:Вопросов: 1, Ответов: 1


Вопрос № 102571: Здраствуйте уважаемые эксперты!Помогите пожалуйста мне снова! Напишите код программы,а то я уже все нервы истратил на нее( Вообщем суть такая данны 3 функции: а)Функция-Afteratnum(c1,c2:string;n1,n2:byte):string- возвращает хвост строки c1, в...

Вопрос № 102.571
Здраствуйте уважаемые эксперты!Помогите пожалуйста мне снова! Напишите код программы,а то я уже все нервы истратил на нее(
Вообщем суть такая данны 3 функции:
а)Функция-Afteratnum(c1,c2:string;n1,n2:byte):string- возвращает хвост строки c1, в которой осуществляется поиск с позиции n2 подстроки с2 с номером вхождения n1. Возвращается все символы строки с1 после указанного вхождения.
б)Функция-Addascii(c1:string;n1,n2:byte):string- возвращает строку, полученную из строки с1 путём прибавления величины n1 к ASCII коду символа этой строки с номером n2.
в)Функция-ATTOKEN(c1,c2:string;n:byte)string- поиск в строке с1 лексемы(слово) с номером n. Строка с2 представляет собой сцепку возможных разделителей лексем .,::!?()[]{}#&-+" и другие по усмотрению программиста.
Мне нужно написать эти 3 функции в одной программе, с оформлением!
Вот похожая программа и мне нужно чтоб так же была оформленно и решались мои функции!

Файл Mystring.pas
unit mystring;
interface
uses crt;
function lower(C:string):string;
function justleft(C1,C2:string):string;
function numline(ST:string):longint;
implementation
function lower;
var
st:string;
n,i,q:byte;
const a:set of char=['a'..'z',' '..'п'];
begin
N:=ord(c[0]);
st:=' ';
for i:=1 to n do begin
q:=2;
if c[i] in a then q:=1;
case q of
1:st:=st+c[i];
else ;
end;
end;
lower:=st;
writeln(st);
end;
function justleft;
var i:integer;
st,st1:string;
begin
clrscr;
st:=c1;
writeln(c1);
for i:=1 to length(c1)+1 do begin
c1:=st;
insert(c2,c1,i);
writeln(c1);
end;
end;
function numline;
var g:text;
i:integer;
begin
assign(g,st);
reset(g);
i:=0;
repeat
readln(g,st);
i:=i+1;
until eof(g);
close(g);
numline:=i;
writeln(i);
end;
begin
clrscr;
end.

Приложение:

Отправлен: 19.09.2007, 00:33
Вопрос задал: Serg (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Serg!

Смотрите приложение.
В модуль и меню программы добавлены Ваши функции.
По программе:
-перед каждым вызовом процедуры frame вызывается процедура clrscr; =>записана в начало процедуры frame;
-процедура frame вызывается ВСЕГДА с параметром true => лишнее вырезано в параметрах и в процедуре(различия заметны) ;
-в каждой процедуре вызываемой из меню, предланается нажать любую клавишу => вынесенно в отденьную процедуру WaitAnyKey;
-переработано полностью меню, теперь достаточно нажатия клавиши для попадания в нужный раздел, вырезанны из процедур меню readln; за отсутсвием надобности;
-с объявлеными фунциями не нужно обращатся как с процедурами.
можно ещё долго перечислять, различия увидете.
По модулю:
-конструкция:
q:=2;
if c[i] in a then q:=1;
case q of
1:st:=st+c[i];
else ;
end;

заменена одним оператором условия;
-const a:set of char=['a'..'z',' '..'п'];
в это множество не попадает только несколько букв(от "р" до "я"), но есть ВСЕ символы от 020h до 0AFh, втом числе и заглавные латинские и русские, название функции lower -наводит на мысль о строчных буквах;
ошибок море, различия будут заметны.

Название модуля у меня q102571а. Если нужно поменняйте.
ps:нет коментариев в программе, через неделю Вы забудете что делает эта программа(факт)
Удачи!

Приложение:

---------
И только наступив на грабли мы приобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 20.09.2007, 22:51
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.60 от 22.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное