Informatică, întrebare adresată de vezetiu1995, 8 ani în urmă

De la tastatură se citeşte una din următoarele cifre romane I, V, X, L, C, D sau M. Să se scrie unprogram care afişează numărul zecimal corespunzător cifrei citite.

In C++, va rog

Răspunsuri la întrebare

Răspuns de andriesboss92
1

Răspuns:

#include <iostream>

#include <string.h>

using namespace std;

int main()

{

   int valoare_zecimala = 0;

   char litera;

   cout << "Introduceti litera: ";

   cin >> litera;

   

   if( litera == 'I' )

       valoare_zecimala = 1;

   else

   if( litera == 'V' )

       valoare_zecimala = 5;

   else

   if( litera == 'X' )

       valoare_zecimala = 10;

   else

   if( litera == 'L' )

       valoare_zecimala = 50;

   else

   if( litera == 'C' )

       valoare_zecimala = 100;

   else

   if( litera == 'D' )

       valoare_zecimala = 500;

   else

   if( litera == 'M' )

       valoare_zecimala = 1000;

   

   if( valoare_zecimala == 0 )

       cout << "Litera introdusa nu corespunde!";

   else

       cout << "Litera " << litera << " reprezinta valoarea " << valoare_zecimala;

}

Explicație:

I 1

V 5

X 10

L 50

C 100

D 500

M 1000

Citim de la tastatura o litera si verificam daca litera introdusa corespunde cu una dintre literele dorite. Daca este adevarat, folosim o variabila care va memora numarul zecimal corespunzator apoi afisam mesaj.


lucaciucandrei: complicat, poti folosi un simplu string sau un case, ori map
andriesboss92: Daca o problema de genul acesta a necesitat ajutor fii sigur ca doar as fi inrautatit lucrurile daca faceam ce ai spus tu. Totusi, ce e atat de complicat in cateva if-uri? E chiar mai simplu in a intelege o insiruire de conditionari ca incepator in programare decat a intelege cum functioneaza map.
lucaciucandrei: da frate, foarte simplu, fix asa se programeaza, cu ifuri, esti tare boss! discutam dupa ce reiei materia!
andriesboss92: Daca tu crezi ca raspunzand la intrebari de genul celei de mai sus cu expresii despre care cei care cer ajutor pe site-ul asta probabil nici nu au auzit este solutia perfecta te invit sa studiezi programa de invatamant prima data, sa iei cateva ore de pedagogie si apoi sa vii sa discutam.
andriesboss92: Nu am zis ca a folosi map, case sau orice alte variante nu este optim ci, din contra, sunt de acord ca este mai optim decat atatea if-uri, dar pentru cei incepatori este mai bine sa invete logica algoritmica, modul cum trebuie sa vada programul. Daca stai sa iti amintesti cum erai tu cand ai inceput programarea pot sa fac pariu ca nu ai inceput cu map, cu algoritmul lui dijkstra, divide-et-impera sau multe altele prima data ci cu initializari, atribuiri, conditionari, parcurgeri etc.
andriesboss92: De ce crezi ca a rezolva un program cu o varianta mai optima d.p.d.v. al modului de executare, dar cu sanse de intelegere mai mic pentru cel ce a cerut ajutor este cea mai buna metoda?
Alte întrebări interesante