|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.01.2009, 10:56 | #1 |
Регистрация: 17.11.2008
Сообщений: 7
|
String и char
У меня проблемка.. Могу ли я в Паскале переделать String в char?
Если нет,то как я могла-бы сделать иначе? Мне надо в case засунуть этот самый стринг, потому как стринг у меня появляется из copy.. |
03.01.2009, 11:04 | #2 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 500
|
Ничего не понял .... а на русском ?
Вам надо проверять некую СТРОКУ ( или символ? ) и выбирать ее значение ? с помощью CASE OF ? Так ?
Skype : UASm1Le.
|
03.01.2009, 11:17 | #3 |
Форумчанин
Регистрация: 24.07.2008
Сообщений: 279
|
Pchar(MyString) - ты не об этом?
Сказал и загрустил от бесспорности своей правоты.
|
03.01.2009, 11:18 | #4 |
Регистрация: 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 стринг неподходит, верно? ЗЫ Я извиняюсь, мне тяжело на русском языке выражаться |
03.01.2009, 11:25 | #5 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 500
|
А вы задание полностью можете написать тогда можно будет помочь .. Если оно у вас есть =) С НОВЫМ ГОДОМ !
Skype : UASm1Le.
|
03.01.2009, 11:27 | #6 |
Регистрация: 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. |
03.01.2009, 11:33 | #7 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 500
|
хммм я попросил только задание а не КОД ПРОГРАММЫ ! =)) Но то ладно будеи искать проблему =))
Код:
Skype : UASm1Le.
|
03.01.2009, 11:36 | #8 |
Регистрация: 17.11.2008
Сообщений: 7
|
:D Я значит не так поняла Ж)
Когда С1 и С2 чар, тогда неработает копи |
03.01.2009, 12:05 | #9 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 500
|
В программе уйма ошибок ....
СКАЖИТЕ ЗАДАНИЕ ! вы это откуда то скачали ?
Skype : UASm1Le.
|
03.01.2009, 12:10 | #10 |
Регистрация: 17.11.2008
Сообщений: 7
|
:D нет, это я сама писала.. что, все так ужасно? Ж(
Задание - пользователь выбирает что он хочет - перевести число в интервале 1- 4999 с арабского на римское или наоборот и вводит это самое число соответственно арабскими или римскими цыфрами.. Там где с арабских на римские цифры у меня правильно работает.. :S |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать из 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 |