01-algoritmul pentru interschimbare
DESCRIPTION
jkhTRANSCRIPT
Algoritmul pentru interschimbare
Colegiul National Vasile AlecsandriElevul:
Catedra de InformaticaClasa: a IX-a.
Profesor: Iordachi Lizeta-Mihaela
1. Algoritmul pentru interschimbareInterschimbarea a doua variabile de memorie a si b nu se poate face prin simpla atribuire a noii valori, deoarece instructiunile:
ab ( a ia valoarea lui b) si ba (b ia valoarea lui a) duc la pierderea valorii lui a;
(Ex: a=2 si b=3 vreau ca a sa devina 3 si b sa devina2 ;pentru aceasta daca ab inseamna a3 iar relatia ba inseamna b3 deci valoarea initiala a lui a adica 2 nu se regaseste in nici o variabila)
ba si ab duc la pierderea valorii b (analog rationament de mai sus)Varianta 1
Pentru a realiza acest schimb de valori intre 2 variabile vom folosi o variabila intermediara (numita si de manevra sau auxiliara) care sa retina continutul care se distruge dupa prima atribuire.Pasii algoritmului sunt:
P1: se salveaza valoarea primei variabile (a) in variabila intermediara ( notata aux) si scriem instructiunea auxa (aux ia valoarea lui a);
P2: se atribuie primei variabile, a carei valoare a fost salvata( in cazul nostru a), valoarea celei de a doua variabile ( in cazul nostru b) si scriem instructiunea ab ( a ia valoarea lui b);
P3: se atribuie celei de a doua variabile b valoarea primei variabile care a fost salvata (in cazul nostru aux), scriem instructiunea baux.
Exemplificare:abaux
Pas 0Citeste a,ba=2b=3
Pas 1xa;a=2b=3aux=2
Pas 2ab;a=3b=3aux=2
Pas 3baux;a=3b=aux=2aux=2
Pas finalScrie a,ba=3b=2
Varianta 2Interschimbarea a doua variabile de memorie a si b se poate realiza si fara variabila intermediara. Pentru aceasta folosim relatiile matematice :a=(a-b)+b
b=((a-b)+b)-(a-b)
Exemplificare:ab
Pas 0Citeste a,ba=2b=3
Pas 1aa-b;a=a-b=2-3=-1b=3
Pas 2ba+b;a=-1b=a+b=-1+3=2
Pas 3ab-a;a=b-a=2-(-1)=3b=2
Pas finalScrie a,ba=3b=2
Studiu de caz:1. Se citeste un numar natural format din 3 cifre (). Sa se afiseze numarul minim care se poate forma din cifrele sale.
Exemplu: daca numarul este 952 vom obtine 259
Pasii algoritmului:
P1: se extrag cifrele numarului;
( cifrele c=2; b=5, a=9)P2: se ordoneaza crescator cifrele numarului
P3: se formeaza un nou numar din cifrele ordonate crescator.
Pentru ordonare pasul 2 se descompune in urmatorii pasi:
P2.1: se compara a cu b; daca a>b sa interschimba a cu b;
(se compara a=9 cu b=5; a>b (9>5) realizam interschimbare a=5 si b=9)
P2.2: se compara b cu c; daca b>c se interschimba b cu c;
(Se compara b=9 cu c=2; daca b>c (9>2) realizam interschimbare b=2 si c=9)P2.3: se compara a cu b. daca a>b se intreschimba a cu b.
(Se compara a=5 cu b=2; daca a>b (5>2) se interschimba a=2 si b=5)Rezultat sortare: a=2; b=5 si c=9)
Tema de lucru:Probleme specifice:1. Se citeste un numar natural format din 3 cifre (). Sa se afiseze numarul minim care se poate forma din cifrele sale.(fara auxiliara)
2. Se citesc 3 numere a,b,c. daca numerele sunt diferite de 0, sa se afiseze media lor geometrica; altfel sa se afiseze numerele in ordine descrescatoare.
3. Se citeste un numar natural format din 3 cifre. Sa se afiseze numarul maxim care se poate forma din cifrele sale.
4. Se citeste un numar natural format din patru cifre. Sa se afiseze numarul maxim si minim care se poate forma din cifrele sale.
Tema pentru acasa:Culegere Carmen PopescuCap1:Elemente de bazaPag 6Pb:6, 29, 30, 31,33
Varianta 1(pseudocod)
real a, b, aux;
inceput
citeste a,b;
auxa;
ab;
baux;
scrie a,b;
sfarsit
Varianta 1(Limbaj C++)
#include
void main()
{
float a, b, aux;
cout a;
coutb;
aux = a;
a = b;
b = aux;
cout