Informatică, întrebare adresată de geodani99, 9 ani în urmă

Scrieţi un program Pascal care citeşte de la tastatură două numere naturale n şi m
(2≤m≤10, 2≤n≤10) şi care construieşte în memorie şi apoi afişează o matrice A cu n linii
(numerotate de la 1 la n) şi m coloane (numerotate de la 1 la m) cu proprietatea că fiecare
element Aij memorează cea mai mare dintre valorile indicilor i şi j (1≤i≤n, 1≤j≤m).
Matricea se va afişa pe ecran, câte o linie a matricei pe câte o linie a ecranului, elementele
fiecărei linii fiind separate prin câte un spaţiu.
Exemplu: pentru n=4 şi m=5 se va afişa matricea alăturată.
1 2 3 4 5
2 2 3 4 5
3 3 3 4 5
4 4 4 4 5


artur99: nu stiu pascal, dar daca stii sa faci o matrice problema e usoara... Adica dupa ce o construiesti in memorie, pentru fiecare repetitie, faci un if( i > j) Aij=i; else Aij=j;
geodani99: si in C++ o poti face?
artur99: da :D

Răspunsuri la întrebare

Răspuns de artur99
1
#include <iostream>
using namespace std;
int main(){
    int n, m, i, j;
    cout<<"n="; cin>>n;
    cout<<"m="; cin>>m;
    int A[n+1][m+1];

    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
             A[i][j]=(i>j)?i:j;

    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++)
           cout<<A[i][j]<<" ";
        cout<<"\n";
    }
}

artur99: A[i][j]=(i>j)?i:j; e unu shortif
artur99: E echivalent cu: if(i>j)A[i][j]=i; else A[i][j]=j;
artur99: http://pastebin.com/2jjwufFn cam asa e cu if normal :D
geodani99: mersiii :D
artur99: cp :)
artur99: Probabil in pascal ar fi ceva de genul:
for i:=1 to n do
for j:=1 to m do
if i>j then A[i, j]:=i else A[i, j]:=j;
Alte întrebări interesante