Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создать модуль и разработать ниже перечисленные функции

68K
05 мая 2011 года
Acmentus
6 / / 05.05.2011
Создать модуль и разработать ниже перечисленные функции, затем выполнить задание с текстом.
MyVal – преобразовать строку в целое число
NewCopy – выделение строки с заданного начального символа до заданного конечного символа
MyPos – определение первого вхождения подстроки
MyLen определяет количество символов в строке

Дана строка, содержащая название товара и его цены. Например: «Конфеты шоколадные «Перезвоны» 70 руб», «Хлеб Чусовской 7 руб. 30 коп.» или «Колбаса 103,40». Разделить название товара и его цены, записав цену в переменную вещественного типа. В названии товара все буквы сделать заглавными.

Модуль:
Код:
Unit MyModule;
Interface
function MyVal(s:string):longint;
function NewCopy(s:string;n,k:byte):string;
function MyPos(ps,st:string):byte;
function MyLen(s:string):byte;
Implementation
function MyVal(s:string):longint;
var i:byte;
    n,k:longint;
begin
n:=0;
for i:=1 to length(s) do
n:=n*10+ord(s)-48;
MyVal:=n;
end;
function NewCopy(s:string;n,k:byte):string;
var i:byte;
    s1:string;
begin
s1:='';
for i:=n to k do
s1:=s1+s;
NewCopy:=s1;
end;
function MyPos(ps,st:string):byte;
var i,j,p,k:byte;
    s1:string;
begin
p:=0;
for i:=1 to length(st)do
if st=ps[1] then
 begin
  s1:='';
  for j:=i to i+length(ps)-1 do
  s1:=s1+st[j];
  if s1=ps then
   begin
    p:=i;
    break;
   end
 end;
MyPos:=p;
end;
function MyLen(s:string):byte;
begin
MyLen:=ord(s[0]);
end;
end.


Программа:
Код:
Program Powerz;
   Uses MyModule;
   var a: real;
  //cena:longint;
  i,posn,posk,l,kopn,kopk:byte;
  cena,tovar,s:string[50];
begin
   write('Введите строку');
   readln(s);
   l:=mylen(s);
   //Определяем первое вхождение числа в строку
   for i:=1 to l do
    case s of
    '1','2','3','4','5','6','7','8','9','0':
        posn:=mypos(s,s);
     end;
      //Определяем окончания числа в строку
    for i:=posn-1 to l do
    if s=' ' then posk:=mypos(s,s);
     //определене копеек
     for i:=posk to l do
     if s='.' then kopn:=mypos(s[i+1],s);
     for i:=kopn to l do
     if s=' ' then kopn:=mypos(s,s)-1;
     writeln(posn,'  ',posk);
     cena:=newcopy(s,posn,posk-1);
     tovar:= newcopy(s,1,posn-1);
     writeln('Товар ',tovar,' его цена ',cena);
   readln;
end.
68K
06 мая 2011 года
Acmentus
6 / / 05.05.2011
Кто-нибудь, пожалуйста, помогите доделать...не определяется корректно цена...
14
06 мая 2011 года
Phodopus
3.3K / / 19.06.2008
То Length() то MyLen(), так не пойдет. Однообразнее надо. И вообще, кто сказал что в названии товара не может быть цифры? Однозначного решения у задачи может и не быть.
68K
07 мая 2011 года
Acmentus
6 / / 05.05.2011
Оставлю задачу на совесть преподавателя.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог