01-algoritmul pentru interschimbare

5
Varianta 1(Limbaj C++) #include<iostream.h> void main() { float a, b, aux; cout<<”a=”; cin>> a; cout<<”b=”; cin>>b; aux = a; a = b; b = aux; cout<<”a=”<< a<<” “<<”b=”<<b; Colegiul National “Vasile Alecsandri”Elevul: Catedra de Informatica Clasa: a IX-a…. Profesor: Iordachi Lizeta-Mihaela 1. Algoritmul pentru interschimbare Interschimbarea a doua variabile de memorie a si b nu se poate face prin simpla atribuire a noii valori, deoarece instructiunile: a←b ( a ia valoarea lui b) si b←a (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 a←b inseamna a←3 iar relatia b←a inseamna b←3 deci valoarea initiala a lui a adica 2 nu se regaseste in nici o variabila) b←a si a←b 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 aux←a (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 a←b ( 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 b←aux. Varianta 1(pseudocod) real a, b, aux; inceput citeste a,b; aux←a; a←b; b←aux; scrie a,b;

Upload: apostolmihai

Post on 18-Nov-2015

214 views

Category:

Documents


0 download

DESCRIPTION

jkh

TRANSCRIPT

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