Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum pot sa fac rost de un negativ...

Lant Bicicleta

Un designer artist: Raymond Loewy

ATS din contactor modular
 Parere apartament ~150k

Limitare la 100mb/s

Altercație

Cartonașe și stickere t...
 Ciobanesc german - zgarda electro...

Ce este instalatia asta? (Valea B...

BD-R Verbatim 25gb salvare Fisier

Lupte WW2
 Achizitie SUV, buget 17k euro

Gps traker pentru animale

Aplicatii terte pentru IPTV, OTT,...

Drept trecere cu “carulR...
 

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

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

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