#include <iostream.h> #include <math.h> void main () { int v [20], n, i; cout<<Introduceti numarul de spatii: ; cin>>n; for (i=0; i<n; i++) //de la fiecare i de la primul spatiu (0) la ultimul (n-1) cin>>v [i]; //citim fiecare v [i]
for (i=0; i<n; i++) //parcurgem din nou vectorul cout<<v *i+<< ; //si de aceasta data afisam v [i]
Problema 1 1. Sa se afiseze si sa se numere cate din elementele unui vector dat de numere naturale (mai mici sau egale cu 30000) sunt numere Fibonacci. Ex. Daca se citeste vectorul x=(5, 10, 1, 7, 9, 8, 1, 6, 55, 19) se va afisa: Sunt 5 numere Fibonacci : 5 1 8 1 55 #include<iostream.h> #include<conio.h> int b,f,t,nr=0,n,v[20]; void main() {clrscr(); int i; cout<<n= ;cin>>n; for(i=1;i<=n;i++) {cout<<v["<<i<<"]=;cin>>v[i];} cout<<numele sunt ; for(i=1;i<=n;i++) if(v[i]==1) {cout<<v[i]<< ;nr++;} else{b=t=1;f=b+t; while(f<v[i]) {b=t;t=f;f=b+t;} if(v[i]==f) {cout<<v[i]<< ;nr++;} } cout<<endl; cout<<nr= <<nr; getch();} Problema 2 2. Se da un vector cu n elemente numere reale (n<=30) Sa se insereze ntre oricare doua elemente alaturate media lor aritmetica (fara a folosi alt vector). #include<iostream.h> #include<conio.h> int n; float ma,v[20]; void citire() {int i; cout<<n= ;cin>>n; for(i=1;i<=n;i++) {cout<<v["<<i<<"]=;cin>>v[i];} 2
1. Se dau mulimile A si B cu numar si elemente precizate. Sa se determine mulimea interseciei si sa se precizeze daca mulimile introduse sunt cumva disjuncte rezulta intersecia lor mulimea vida). /* Aplicatie 2 */ #include<stdio.h> #include<conio.h> int i,j,k,A[100],B[100],C[100]; float m,n; main() { k=0; printf("\nIntroduceti dimensiunile m,n:"); scanf("%d%d",&m,&n); puts("\nIntroduceti elementele lui A:"); for(i=1;i<=m;i++) { printf("\nElementul A[%d}=",i); scanf("%d",&A[i]); } puts("\nIntroduceti elementele lui B:"); for(i=1, i<=n, j++); { printf("\nElementul B[%d}=",j); scanf("%d",&B[j]); } for(i=1, i<=m, i++); { 3
for(i=1;i<=n;j++); {if(A[i]=B[j]) {k++; C[k]=A[i]; }}} for(i=1;i<=k;i++) printf("\nElementul C[%d] este %d",k,C[k]); if(k==0); puts("\nRezultatul este multimea vida"); getche(); }
Ordonarea vectorilor crescator si descrescator //Ordonare #include <iostream.h> void main () { double long n, i, j, a, aux, d; //am declarat variabilele folosite: n pentru nr actual de spatii in vector, i pentru pozitia fiecarei valori ale vectorului, j pentru a afla pozitia urmatoare a lui v*i+, a este o variabila care cere utilizatorului tipul de ordonare, aux este auxiliara care ajuta la interschimbare, iar d pentru a repeta programul, la cererea utilizatorului. int v [1000]; do { cout<<Ordonarea numerelor introduse <<endl; cout<<Alegeti tipul de ordonare: <<endl; cout<<1.ORDONARE CRESCATOARE<<endl; cout<<2.ORDONARE DESCRESCATOARE<<endl; cin>>a; //cerem de la tastatura tipul de ordonare if (a==1) //daca am ales ordonarea crescatoare, atunci >> { cout<<Ati ales ordonarea crescatoare.<<endl; cout<<Cte numere introduceti? (MAX=1000) ; cin>>n; //aici citim numarul de spatii disponibile in vector if (n>1000) //acesta nu trebuie sa fie mai mare de 1000 cout<<Reporniti programul si introduceti un numar corespunzator.; //in acest caz cerem utilizatorului sa introduca un numar mai mic de 1000. else { cout<<Introduceti numerele: ; //in cazul in care a introdus un numar corect for (i=0; i<n; i++) cin>>v [i]; //citim vectorul for (i=0; i<n; i++) //incepem sa-l parcurgem { for (j=i+1; j<n; j++) //iar pentru j=i+1, adica valoarea urmatoarei pozitii if (v [i]>v [j]) //comparam pozitia initiala cu cea urmatoare. Daca este mai mare, atunci schimbam pozitiile valorilor { aux=v [i]; v [i]=v [j]; v [j]=aux; } 4
} cout<<Ordinea crescatoare a numerelor introduse este: ; for (i=0; i<n; i++) cout<<v *i+<<; ; //si in final afisam ordinea corecta, in acest caz crescatoare, a numerelor din vector, cu ; intre ele } } else if (a==2) //daca am ales ordonarea descrescatoare, atunci>> { cout<<Ati ales ordonarea descrescatoare.<<endl; cout<<Cte numere introduceti? (MAX=1000) ; cin>>n; //la fel, citim numarul actual de spatii in vector if (n>1000) cout<<Reporniti programul si introduceti un numar corespunzator.; //cerem repornirea in cazul unui numar >1000 else { cout<<Introduceti numerele: ; for (i=0; i<n; i++) cin>>v [i]; //citim fiecare numar de la tastatura si le memoram in vector for (i=0; i<n; i++) //apoi il parcurgem { for (j=i+1; j<n; j++) //si pentru urmatoarea valoare din urmatoarea pozitie, if (v [i]<v [j]) //comparam valoarea initiala cu cea de pe urmatoarea pozitie, dar in cazul ordonarii descrescatoare, v[i] trebuie sa fie mai mare decat v[i+1]. { aux=v [i]; v [i]=v [j]; v [j]=aux; } } cout<<Ordinea descrescatoare a numerelor introduse este: ; for (i=0; i<n; i++) cout<<v *i+<<; ; //afisam fiecare numar din vector, in ordinea corecta } } cout<<endl; cout<<Doriti sa reporniti programul? (DA=1 / NU=0) ; cin>>d; } while (d==1); //aici cerem utilizatorului permisiunea de a repeta programul, dupa cum v-am explicat in posturile anterioare } 1. Sa se realizeze un program n C care sa citeasca o matrice cu m linii i n coloane de numere ntregi, sa calculeze determinantul de ordinul 2.