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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 11:50   #1
Acmentus
Новичок
Джуниор
 
Регистрация: 05.05.2011
Сообщений: 2
Сообщение Создать модуль и разработать ниже перечисленные функции, затем выполнить задание с текстом.

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[i])-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[i];
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[i]=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;
  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[i] of
    '1','2','3','4','5','6','7','8','9','0':
        posn:=mypos(s[i],s);
     end;
      //Определяем окончания числа в строку
    for i:=posn-1 to l do
    if s[i]=' ' then posk:=mypos(s[i],s);
     //определене копеек
     for i:=posk to l do
     if s[i]='.' then kopn:=mypos(s[i+1],s);
     for i:=kopn to l do
     if s[i]=' ' then kopn:=mypos(s[i],s)-1;
     writeln(posn,'  ',posk);
     cena:=newcopy(s,posn,posk-1);
     tovar:= newcopy(s,1,posn-1);
     writeln('Товар ',tovar,' его цена ',cena);
   readln;
end.
Acmentus вне форума Ответить с цитированием
Старый 06.05.2011, 15:37   #2
Acmentus
Новичок
Джуниор
 
Регистрация: 05.05.2011
Сообщений: 2
По умолчанию Создать модуль и разработать ниже перечисленные функции, затем выполнить задание с текстом.

Кто-нибудь, пожалуйста, помогите доделать...не определяется корректно цена...
Acmentus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить модуль в Access из Делфи anytim Microsoft Office Access 0 16.10.2010 02:42
Разработать модуль Zobar Помощь студентам 2 20.10.2009 10:01
ЗАДАНИЕ С ТЕКСТОМ KulOle Паскаль, Turbo Pascal, PascalABC.NET 2 11.11.2008 08:20