1.
Scrieţi un program C/C++ care citeşte de la tastatură numerele naturale m şi n din intervalul
[1,100], apoi construieşte în memorie şi afişează pe ecran un tablou bidimensional cu m
linii şi n coloane astfel încât prin parcurgerea acestuia linie cu linie de sus în jos şi fiecare
linie de la stânga la dreapta, se obţin în ordine descrescătoare toate numerele naturale de
la 1 la m*n, ca în exemplu.
Fiecare linie a tabloului este afişată pe câte o linie a ecranului, elementele
aceleiaşi linii fiind separate prin câte un spaţiu.
Exemplu: pentru m=4 şi n=3 se va construi şi afişa tabloul alăturat.
12 11 10
9 8 7
6 5 4
3 2 1
2.
Un tablou bidimensional A cu m linii şi n coloane (1≤m≤100, 1≤n≤100) conţine pe prima
linie numerele 1,2,...,n, iar pe prima coloană numerele 1,2,...,m. Celelalte elemente
ale tabloului sunt date de relaţia: A[ i ][ j ]=A[ i-1 ][ j ]+A[ i] [ j-1 ]. Scrieţi un program C/C++ care citeşte de la tastatură numerele m şi n şi afişează pe ecran elementul de pe ultima linie şi ultima coloană a tabloului.
Exemplu: pentru m=3 şi n=4 se va afişa 25
deoarece elementele tabloului A sunt:
1 2 3 4
2 4 7 11
3 7 14 25
Răspunsuri la întrebare
Răspuns de
2
int table[100][100];
void Nr_1(){
int m,n;
cin>>m>>n;
for(int i=m;i>0;i--){
for(int j=i*n;j>(i-1)*n;j--){
table[m-i][i*n-j]=j;
cout<<j;
}
cout<<endl;
}
cout<<endl;
//Code to check the memory(table array)
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<table[i][j];
}
cout<<endl;
}
}
void Nr_2(){
int m,n;
cin>>m>>n;
for(int i=1;i<=n;i++)
table[1][i]=i;
for(int i=1;i<=m;i++)
table[i][1]=i;
cout<<Take_Val_Of(n,m);
}
int Take_Val_Of(int x,int y){
//Permutari
if (table[y][x]==0) {
return Take_Val_Of(x-1,y)+Take_Val_Of(x,y-1);
}else{
return table[y][x];
}
}
void Nr_1(){
int m,n;
cin>>m>>n;
for(int i=m;i>0;i--){
for(int j=i*n;j>(i-1)*n;j--){
table[m-i][i*n-j]=j;
cout<<j;
}
cout<<endl;
}
cout<<endl;
//Code to check the memory(table array)
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<table[i][j];
}
cout<<endl;
}
}
void Nr_2(){
int m,n;
cin>>m>>n;
for(int i=1;i<=n;i++)
table[1][i]=i;
for(int i=1;i<=m;i++)
table[i][1]=i;
cout<<Take_Val_Of(n,m);
}
int Take_Val_Of(int x,int y){
//Permutari
if (table[y][x]==0) {
return Take_Val_Of(x-1,y)+Take_Val_Of(x,y-1);
}else{
return table[y][x];
}
}
Răspuns de
3
1)
#include <iostream>
using namespace std;
int main(){
int m,n,i,j,a[100][100];
cout<<"Introduceti dimensiunile matricei:";
cin>>m>>n;
cout<<"Matricea este:\n";
for(i=0;i<m;i++){
for(j=0;j<n;j++){
a[i][j]=m*n-i*n-j;
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
2)
#include <iostream>
using namespace std;
int main(){
int m,n,i,j,a[100][100];
cout<<"Introduceti dimensiunile matricei:";
cin>>m>>n;
cout<<"Matricea este:\n";
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(i==0){
a[i][j]=j+1;
}
else if(j==0){
a[i][j]=i+1;
}
else{
a[i][j]=a[i-1][j]+a[i][j-1];
}
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"Ultimul element al matricei este:"<<a[m-1][n-1];
return 0;
}
#include <iostream>
using namespace std;
int main(){
int m,n,i,j,a[100][100];
cout<<"Introduceti dimensiunile matricei:";
cin>>m>>n;
cout<<"Matricea este:\n";
for(i=0;i<m;i++){
for(j=0;j<n;j++){
a[i][j]=m*n-i*n-j;
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
2)
#include <iostream>
using namespace std;
int main(){
int m,n,i,j,a[100][100];
cout<<"Introduceti dimensiunile matricei:";
cin>>m>>n;
cout<<"Matricea este:\n";
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(i==0){
a[i][j]=j+1;
}
else if(j==0){
a[i][j]=i+1;
}
else{
a[i][j]=a[i-1][j]+a[i][j-1];
}
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"Ultimul element al matricei este:"<<a[m-1][n-1];
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă