Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Deparazitare externa pisici fara ...

Seriale turcesti/coreene online H...

Merita un Termostat Smart pentru ...

Sfat achizitie MTB Devron Riddle
 Problema mare cu parintii= nervi ...

switch microtik

Permis categoria B la 17 ani

Sfaturi pentru pregatirea de eval...
 Crapaturi placa

cum imi accesez dosarul electroni...

Momentul Aprilie 1964

Sursa noua - zgomot ?
 A fost lansat Ubuntu 24.04 LTS

Pareri apartament in zona Berceni?

Free streaming SkyShowtime de la ...

Skoda Fabia 1.0 TSI (110 CP)- 19 ...
 

Numere romane in numere arabe (si invers)

- - - - -
  • Please log in to reply
No replies to this topic

#1
SROBogdan

SROBogdan

    New Member

  • Grup: Members
  • Posts: 13
  • Înscris: 26.06.2008
Salut,
Puteti sa imi spuneti si mie cam care ar fi problema cu acest program? Va atasez aici ce am lucrat (tin sa mentionez ca in liceu am studiat C/C++ si nu prea cunosc pascal)
Va multumesc!

program romane_arabe;
var
m:integer;
total:integer;
ok:integer;
aux:integer;
dim:integer;
arabnum:integer;
n:integer;
i:integer;
roman:string;
string_arab:string;
x: char;
V:array[1..10]of integer;
arab:array[1..4]of integer;
procedure cifra(x:integer);
begin
if x=1 then write('I')
else if x=2 then write('II')
else if x=3 then write('III')
else if x=4 then write('IV')
else if x=5 then write('V')
else if x=6 then write('VI')
else if x=7 then write('VII')
else if x=8 then write('VIII')
else if x=9 then write('IX')
else write('Numarul nu este valid');
end;
procedure zeci(x:integer);
begin
if x=1 then write('X')
else if x=2 then write('XX')
else if x=3 then write('XXX')
else if x=4 then write('XL')
else if x=5 then write('L')
else if x=6 then write('LX')
else if x=7 then write('LXX')
else if x=8 then write('LXXX')
else if x=9 then write('XC')
else write('Numarul nu este valid');
end;
procedure sute(x:integer);
begin
if x=1 then write('C')
else if x=2 then write('CC')
else if x=3 then write('CCC')
else if x=4 then write('CD')
else if x=5 then write('D')
else if x=6 then write('DC')
else if x=7 then write('DCC')
else if x=8 then write('DCCC')
else if x=9 then write('CM')
else write('Numarul nu este valid');
end;
procedure mie(x:integer);
begin
if x=1 then write('M')
else if x=2 then write('MM')
else if x=3 then write('MMM')
else if x=4 then write('MMMM')
else if x=5 then write('MMMMM')
else if x=6 then write('MMMMMM')
else if x=7 then write('MMMMMMM')
else if x=8 then write('MMMMMMMM')
else if x=9 then write('MMMMMMMMM')
else write('Numarul nu este valid');
end;

function RoAr(x: char): integer;
begin
case x of
'I':  RoAr:=1;
'V':  RoAr:=5;
'X':  RoAr:=10;
'L':  RoAr:=50;
'C':  RoAr:=100;
'D':  RoAr:=500;
'M':  RoAr:=1000;
end;

begin
for i:=0 to 10 do
begin
roman[i]:='A';
end;
for i:=0 to 10 do
begin
V[i]:=0;
end;
writeln('1 pentru cifre romane in arabe');
writeln('2 pentru cifre arabe in romane');
readln(n);
if n=1 then
begin
writeln('Introduceti lungimea numarului roman: '); readln(n);
writeln('Introduceti numarul roman: ');
for i:=0 to n do
begin
readln(roman[i]);
end;
for i:=0 to n do
begin
if (roman[i]>'A') and (roman[i]<'z') then
		  begin
			 for i:=0 to n do
			  begin
			   V[i]:=RoAr(roman[i]);
			  end;
			  total:=V[n-1];
	  for i:=n-1 downto 0 do
			   begin
		  if V[i]>V[i+1] then
					total:=total-V[i]
					  else
						 begin
						   total:=total+V[i];
						   write(total);
						   write(roman);
						 end;
			   end
		else
		begin
		  write('Sirul de caractere nu este valid, introduceti alt numar');
		  readln(roman);
		end;
end;   {am inchis for-ul}
end;   {am inchis ramura cu n=1}

else
if n=2 then
begin
writeln('introduceti numarul arab: ');
readln(arabnum);
aux:=arabnum;  {auxiliarul este folosit la calculul lungimii}
dim:=0;
while aux>0 do
begin dim:=dim+1; aux:=aux/10; end; {*!*!* conversie numar real in integer}
for i:=dim-1 downto 0 do
begin
arab[i]:=arabnum mod 10;  {ultima cifra din arabnum ?!}
arabnum:=arabnum/10;
end;
for i:=0 to n do
if (arab[i]>=0) and (arab[i]<=9) then ok:=1;
if ok=1 then
begin
if dim=4 then
begin
for i:=0 to dim do
  if i=0 then mie(arab[i]);
  else
  if i=1 then sute(arab[i]);
  else
  if i=2 then zeci(arab[i]);
  else do
  cifra(arab[i]);
end;

else
if dim=3 then
begin
for i:=0 to dim do
  if i=0 then sute(arab[i]);
  else
  if i=1 then zeci(arab[i]);
  else
  if i=2 then cifra(arab[i]);
end;
else
if dim=2
begin
for i:=0 to dim do
  if i=0 then zeci(arab[i]);
  else then cifra(arab[i]);
end;
else
if dim=1 then cifra(arab[i]);
end; {am inchis ramura cu ok=1}
else writeln('Introduceti valorea 1 sau 2');
end; {am inchis ramura cu n=2}
end. {am inchis programul}





Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate