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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2009, 10:56   #1
Julinja
 
Регистрация: 17.11.2008
Сообщений: 7
По умолчанию String и char

У меня проблемка.. Могу ли я в Паскале переделать String в char?
Если нет,то как я могла-бы сделать иначе? Мне надо в case засунуть этот самый стринг, потому как стринг у меня появляется из copy..
Julinja вне форума Ответить с цитированием
Старый 03.01.2009, 11:04   #2
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Ничего не понял .... а на русском ?

Вам надо проверять некую СТРОКУ ( или символ? ) и выбирать ее значение ? с помощью CASE OF ? Так ?
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 03.01.2009, 11:17   #3
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Pchar(MyString) - ты не об этом?
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 03.01.2009, 11:18   #4
Julinja
 
Регистрация: 17.11.2008
Сообщений: 7
По умолчанию

так

procedure rom(P:???; PP:integer); {noskaidro vertibu, cik tas ir araabu pierakstaa}
begin
case P of
'I': P1:=1;
'V': P1:=5;
'X': P1:=10;
'L': P1:=50;
'C': P1:=100;
'D': P1:=500;
'M': P1:=1000;
'A': P1:=5000;
end;
PP:=P1;
end;

и так

C1:=copy(X,I,1);
C2:=copy(X,I+1,1);
rom(C1,C1a);
rom(C2,C2a);


С1 и С2 у меня стринг, так как идут из ф-и копи. А мне надо,чтобы эти С1 и С2 подходилил под эту процедуру с case, но для case стринг неподходит, верно?

ЗЫ Я извиняюсь, мне тяжело на русском языке выражаться
Julinja вне форума Ответить с цитированием
Старый 03.01.2009, 11:25   #5
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

А вы задание полностью можете написать тогда можно будет помочь .. Если оно у вас есть =) С НОВЫМ ГОДОМ !
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 03.01.2009, 11:27   #6
Julinja
 
Регистрация: 17.11.2008
Сообщений: 7
По умолчанию

program uzd;
uses crt;
var D,S,R1,R2,R3,R4,L1,L2,G,C1a,C2a,SK, P1,I:integer;
X,K1,K2,K3,K4,C1,C2:string;
M1,M2:char;
function ievade(T:string):integer; {datu ievade}
var X:string;
KD,S:integer;
begin
repeat
write (T+ '===> ');
readln(X);
val(X,S,KD);
until (KD=0) and (S>0) and (S<5000);
ievade:=S;
end;
function tukstosi(A:integer):string; {atadala tuukstoshu simbolu}
begin
case A of
1: write ('M');
2: write ('MM');
3: write ('MMM');
4: write ('MA');
end;
end;

function simti(A:integer):string; {simtu}
begin
case A of
1: write ('C');
2: write ('CC');
3: write ('CCC');
4: write ('CD');
5: write ('D');
6: write ('DC');
7: write ('DCC');
8: write ('DCCC');
9: write ('CM');
end;
end;
function desmiti(A:integer):string; {desmitu}
begin
case A of
1: write ('X');
2: write ('XX');
3: write ('XXX');
4: write ('XL');
5: write ('L');
6: write ('LX');
7: write ('LXX');
8: write ('LXXX');
9: write ('XC');
end;
end;
function vieni(A:integer):string; {vienu}
begin
case A of
1: write ('I');
2: write ('II');
3: write ('III');
4: write ('IV');
5: write ('V');
6: write ('VI');
7: write ('VII');
8: write ('VIII');
9: write ('IX');
end;
end;

procedure rom(P:char; PP:integer); {noskaidro vertibu, cik tas ir araabu pierakstaa}
begin
case P of
'I': P1:=1;
'V': P1:=5;
'X': P1:=10;
'L': P1:=50;
'C': P1:=100;
'D': P1:=500;
'M': P1:=1000;
'A': P1:=5000;
end;
PP:=P1;
end;

begin
clrscr;
writeln ('Ja velaties parverst no arabu uz romiesu cipariem nospiediet 1 ');
writeln ('Ja velaties parverst no romiesu uz arabu cipariem nospiediet 2 ');
readln (D);

case D of
1: begin

S:=ievade ('Ievadiet skaitli no 1 lidz 4999 arabu pieraksta ');
write ('Skaitlis ',S,' romiesu pieraksta ir ');

R1:=S div 1000;
L1:=S mod 1000;
R2:=L1 div 100;
L2:=L1 mod 100;
R3:=L2 div 10;
R4:=L2 mod 10;

K1:=tukstosi(R1);
write (K1);
K2:=simti(R2);
write (K2);
K3:=desmiti (R3);
write (K3);
K4:=vieni(R4);
write (K4);

end;

2: begin
writeln ('Ievadiet skaitli no 1 lidz 4999 romiesu pieraksta ');
readln (X);
write ('Skaitlis ',X,' romiesu pieraksta ir ');
SK:=0;
G:=length(X);
I:=1;
repeat
If I=G then begin
C1:=copy(X,I,1);
rom(C1,C1a);
SK:=SK+C1;
end;
else begin
C1:=copy(X,I,1);
C2:=copy(X,I+1,1);
rom(C1,C1a);
rom(C2,C2a);
If C1a>=C2a then begin
SK:=SK+C1a;
I:=I+1;
end;
else begin
SK:=SK+(C2a-C1a);
I:=I+2;
end;
end;
end;
until I<=G;
write (SK);
end;
end;
readkey
end.

И вас также


up первая часть работает

Последний раз редактировалось Julinja; 03.01.2009 в 11:29.
Julinja вне форума Ответить с цитированием
Старый 03.01.2009, 11:33   #7
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

хммм я попросил только задание а не КОД ПРОГРАММЫ ! =)) Но то ладно будеи искать проблему =))
Код:
 c1,c2:CHAR;
Опробуйте =)
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 03.01.2009, 11:36   #8
Julinja
 
Регистрация: 17.11.2008
Сообщений: 7
По умолчанию

:D Я значит не так поняла Ж)
Когда С1 и С2 чар, тогда неработает копи
Julinja вне форума Ответить с цитированием
Старый 03.01.2009, 12:05   #9
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

В программе уйма ошибок ....

СКАЖИТЕ ЗАДАНИЕ ! вы это откуда то скачали ?
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 03.01.2009, 12:10   #10
Julinja
 
Регистрация: 17.11.2008
Сообщений: 7
По умолчанию

:D нет, это я сама писала.. что, все так ужасно? Ж(
Задание - пользователь выбирает что он хочет - перевести число в интервале 1- 4999 с арабского на римское или наоборот и вводит это самое число соответственно арабскими или римскими цыфрами.. Там где с арабских на римские цифры у меня правильно работает.. :S
Julinja вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать из string char biolog Паскаль, Turbo Pascal, PascalABC.NET 9 28.05.2008 10:19
Первести char в string Avalonix Общие вопросы Delphi 2 06.05.2008 16:05
из string в char ShenDy Общие вопросы C/C++ 1 14.04.2008 11:01
char->string eds Общие вопросы .NET 1 28.11.2007 17:22
array of char -> string Valkiria Общие вопросы Delphi 5 04.10.2007 10:40