Salutare dragi prieteni si bun gasit la un nou articol de pe acest website, eu sunt Catalin si astazi vreau sa va prezint convertirea codului din C++ in C#. In primul rand vreau sa va spun ca in acest tutorial am decis sa ma leg strict de instructiunea while (pentru a nu va induce in eroare cu tot felul de chestii, in esenta convertirea este aceeasi).
O sa scriu cateva cerinte pe care le voi rezolva mai jos in C++ :
- Se citeste n numar natural :
- Sa se verifice daca este palindrom si afisati un mesaj (palindrom este numarul care este egal cu oglinditul sau)
- Sa se determine si sa se afiseze numarul obtinut prin eliminarea tuturor cifrelor pare
- Sa se determine si sa se afiseze produsul cifrelor impare
- Se citesc la tastatura doua numere naturale n si k. Sa se determine si sa se afiseze :
- C.M.M.D.C-ul lor
- C.M.M.M.C-ul lor
- Sa se verifice daca acestea sunt prime intre ele (folosi proprietatea C.M.M.M.C = 1)
Rezolvare in C++ :
1) a) #include <iostream> using namespace std; int main() { int n,m,o=0,p; cout<<"n="; cin>>n; m=n; //ii facem oglinditul while(n!=0) { p=n%10; o=o*10+p; n=n/10; } //verificam daca numarul stocat este egal cu oglinditul if(o==m) cout<<"numarul este palindrom"; else cout<<"numarul nu este palindrom"; return 0; }
1) b) #include <iostream> using namespace std; int main() { int n,o=0,p; cout<<"n="; cin>>n; while(n!=0) { p=n%10; if(p%2 != 0) o=o*10+p; n=n/10; } cout<<o; return 0; }
1) c) #include <iostream> using namespace std; int main() { int n,c,p=1; cout<<"n="; cin>>n; while(n!=0) { c=n%10; if(c%2 == 1) p=p*c; n=n/10; } cout<<p; return 0; }
2) a) METODA LUI EUCLID #include <iostream> using namespace std; int main() { int n,k,r; cout<<"n="; cin>>n; cout<<"k="; cin>>k; while(n!=k) { r=n%k; n=k; k=r; } cout<<"C.M.M.D.C-ul numerelor este: "<<n; return 0; }
2) b) #include <iostream> using namespace std; int main() { int n,k,p,cmmmc; cout<<"n="; cin>>n; cout<<"k="; cin>>k; p=n*k; while(n!=k) { if(n>k) n=n-k; else k=k-n; } cmmmc=p/k; cout<<"C.M.M.M.C-ul numerelor este: "<<cmmmc; return 0; }
2) c) #include <iostream> using namespace std; int main() { int n,k; cout<<"n="; cin>>n; cout<<"k="; cin>>k; while(n!=k) { if(n>k) n=n-k; else k=k-n; } if(n==1) cout<<"Numerele sunt prime intre ele"; else cout<<"Numerele nu sunt prime intre ele"; return 0; }
Rezolvare in C#:
1) a) Using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int n, m, o = 0, p; Console.Write("Introduceti numarul n = "); n = int.Parse(Console.ReadLine()); m = n; while (n != 0) { p = n % 10; o = o * 10 + p; n = n / 10; } //verificam daca numarul stocat este egal cu oglinditul if (o == m) Console.Write("numarul este palindrom"); else Console.Write("numarul nu este palindrom"); Console.ReadKey(); } } }
1) b) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int n, o = 0, p; Console.Write("Introduceti numarul n = "); n = int.Parse(Console.ReadLine()); while (n != 0) { p = n % 10; if (p % 2 != 0) o = o * 10 + p; n = n / 10; } Console.Write("Dupa eliminarea tuturor cifrelor pare numarul este: o = {0}", o); Console.ReadKey(); } } }
1) c) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int n, c, p = 1; Console.Write("Introduceti numarul n = "); n = int.Parse(Console.ReadLine()); while (n != 0) { c = n % 10; if (c % 2 == 1) p = p * c; n = n / 10; } Console.Write("Produsul cifrelor impare este: p = {0}", p); Console.ReadKey(); } } }
2) a) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int n, k, r; Console.Write("Introduceti numarul n = "); n = int.Parse(Console.ReadLine()); Console.Write("Introduceti numarul k = "); k = int.Parse(Console.ReadLine()); while (k != 0) { r = n % k; n = k; k = r; } Console.Write("C.M.M.D.C-ul numerelor este: n = {0}", n); Console.Write("\n"); Console.Write("A FOST FOLOSITA METODA LUI EUCLID"); Console.ReadKey(); } } }
2) b) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int n, k, p, cmmmc; Console.Write("Introduceti numarul n = "); n = int.Parse(Console.ReadLine()); Console.Write("Introduceti numarul k = "); k = int.Parse(Console.ReadLine()); p = n * k; while (n != k) { if (n > k) n = n - k; else k = k - n; } cmmmc = p / k; Console.Write("C.M.M.M.C-ul numerelor este: cmmmc = {0}", cmmmc); Console.ReadKey(); } } }
2) c) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int n, k; Console.Write("Introduceti numarul n = "); n = int.Parse(Console.ReadLine()); Console.Write("Introduceti numarul k = "); k = int.Parse(Console.ReadLine()); while (n != k) { if (n > k) n = n - k; else k = k - n; } if (n == 1) Console.Write("Numerele sunt prime intre ele"); else Console.Write("Numerele nu sunt prime intre ele"); Console.ReadKey(); } } }
Tin sa multumesc: Dragotoniu Corina pentru rezolvarea in cod C++ a catorva supuncte ! Pentru orice intrebare/eroare , nu ezitati sa ma contactati !