Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2011, 13:34   #1
Alexgv
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 18
По умолчанию процедуры и функции

Просьба помочь выполнить следующие задания. 1, 2, 5 вроде представляю как делать, сейчас напишу и выложу сюда, проверьте пожалуйста. А 3,4,6 даже не представляю как делать, растолкуйте кто может

Написать:
1) процедуру ввода текста из заданного числа символов;
2) функцию подсчёта указанного знака препинания в тексте;
3) процедуру записи слов текста в одномерный строковый массив;
4) функцию нахождения номера первого встретившегося знака препинания в тексте после указанного места;
5) функцию подсчёта количества повторения заданного слова в строке;
6) процедуру – инструкцию, выводящую сведения о запрашиваемой подпрограмме этого модуля с полной характеристикой её параметров.
Alexgv вне форума Ответить с цитированием
Старый 24.01.2011, 13:41   #2
Alexgv
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 18
По умолчанию

1)

Procedure vvod (var s:string, k:word);
var i:byte;
begin
writeln('введите текст');
for i:=1 to k do
readln(s);
end;
Alexgv вне форума Ответить с цитированием
Старый 24.01.2011, 13:46   #3
Alexgv
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 18
По умолчанию

2)

function kol(z:char):byte;
var s:string;
k,i:byte;
begin
k:=0;
for i:=1 to length(s) do
if s[i]=z then inc(k);
kol:=k;
end;
Alexgv вне форума Ответить с цитированием
Старый 24.01.2011, 13:54   #4
Alexgv
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 18
По умолчанию

5)

function kolpov(sl:char):byte;
var s:string;
k,i:byte;
begin
k:=0;
for i:=0 to length(s) do
if s[i]=sl then inc(k);
kolpov:=k;
end;
Alexgv вне форума Ответить с цитированием
Старый 24.01.2011, 16:13   #5
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Цитата:
3) процедуру записи слов текста в одномерный строковый массив;
в поиск - было уже сто раз
Цитата:
4) функцию нахождения номера первого встретившегося знака препинания в тексте после указанного места;
Код:
const mn=[',','.','!','?'];
var st: sting;
begin
   for i:=k to lenght(st) do
    if (st[i] in mn) then  halt;
   writeln(i); номер первого знака препинания
end;
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 24.01.2011, 16:40   #6
Alexgv
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 18
По умолчанию

Niro, блаодарю
Alexgv вне форума Ответить с цитированием
Старый 24.01.2011, 16:48   #7
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
процедуру ввода текста из заданного числа символов
Код:
Procedure vvod (var s:string, k:word);
var i:byte;
c:char;
begin
s:='';
writeln('введите текст');
for i:=1 to k do begin
readln(c);
s:=s+c;
end;
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 25.01.2011, 10:11   #8
Alexgv
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 18
По умолчанию

Mad_Cat, спасибо за поправку
Alexgv вне форума Ответить с цитированием
Старый 30.01.2011, 14:14   #9
Alexgv
Пользователь
 
Регистрация: 17.12.2010
Сообщений: 18
По умолчанию

Сделал библиотечный модуль из всех этих программ. Не работает в чем ошибка?

Unit Kurs;
INTERFACE
Type
Kurs=record
mas=array[1..40] of string;

end;
Procedure vvod (var s:string, k:word);
function kol(z:char):byte;
procedure ReadSt(var a:mas;s:string);
Function nom(I:integer):byte;
function kolpov(sl:char):byte;
Procedure Instruction;
IMPLEMENTATION
Uses crt;
{1) процедуру ввода текста из заданного числа символов;}
Procedure vvod (var s:string, k:word);
var i:byte;
c:char;
begin
s:='';
writeln('введите текст');
for i:=1 to k do begin
readln(c);
s:=s+c;
end;
end;
{2) функцию подсчёта указанного знака препинания в тексте;}
Function kol(z:char):byte;
var s:string;
k,i:byte;
begin
k:=0;
for i:=1 to length(s) do
if s[i]=z then inc(k);
kol:=k;
end;
{3) процедуру записи слов текста в одномерный строковый массив;}
procedure ReadSt(var a:mas;s:string);
var
st:string;
k,i:integer;
begin
s:=s+' ';
st:='';
k:=0;
for i:=1 to length(s) do
if ( not ( s[i] in [';',',','.','!',' '] )) then
st:=st+s[i]
else
begin
k:=k+1;
a[k]:=st;
st:='';
end;
writeln('сформированный массив слов:');
for i:=1 to k do
writeln(a[i]);
end;
{4) функцию нахождения номера первого встретившегося знака препинания в тексте после указанного места;}
const mn=[',','.','!','?'];
var st: sting;
begin
for i:=k to lenght(st) do
if (st[i] in mn) then halt;
writeln(i); номер первого знака препинания
end;

{5) функцию подсчёта количества повторения заданного слова в строке;}
Function kolpov(sl:char):byte;
var s:string;
k,i:byte;
begin
k:=0;
for i:=0 to length(s) do
if s[i]=sl then inc(k);
kolpov:=k;
end;
{6) процедуру - инструкцию, выводящую сведения о запрашиваемой подпрограмме этого модуля с полной характеристикой её параметров.}
Procedure Instruction;
var
nom: byte;
Begin
While true do begin
clrscr ;
writeln('1. Процедура ввода текста из заданного числа символов');
writeln('2. Функция подсчета указанного знака припеная в тексте');
writeln('3. Процедура записи слов текста в одномерный строковый массив');
writeln('4. Функция нахождения номера первого встретившегося знака препинания в тексте после указанного места');
writeln('5. Функция подсчёта количества повторения заданного слова в строке');
writeln('6. Выход');
write('Выберите:'); readln(nom);
case nom of
1: begin
writeln('');
readln;
end;
2: begin
writeln('');
readln;
end;
3: begin
writeln('');
readln;
end;
4: begin
writeln('');
readln;
end;
5: begin
writeln('');
readln;
end;
6: break
else writeln('Не верный ввод, нажмите ENTER.');
readln; end;end;end;end;
Alexgv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции!!!! k4k7u3 Помощь студентам 0 12.12.2010 18:41
Процедуры и функции Joowood Паскаль, Turbo Pascal, PascalABC.NET 0 08.12.2010 13:48
процедуры и функции Serg12 SQL, базы данных 5 25.02.2010 15:55
процедуры и функции Ruslan57 Помощь студентам 2 29.12.2009 09:20
Процедуры и функции Nikolai17 Помощь студентам 1 28.12.2009 22:56