Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: problema atestat informatica  (Citit de 4773 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
tksds
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« : Februarie 28, 2011, 18:32:48 »

Am si eu urmatoarea problema pe care trebuie sa o rezolv pana maine neaparat. Va rog frumos sa ma ajutati si pe mine cu ea.

Fisierul mat.in contine pe prima linie două numere naturale n si m (1 ≤ n, m ≤ 10), iar pe următoarele n linii câte m numere naturale, separate prin câte un spatiu, reprezentând elementele unei matrici cu n linii si m coloane. Să se realizeze un program în care, folosind subprograme, se vor determina liniile si coloanele formate numai din numere prime.

Exemplu:
mat.in
4 5
1 2 3 4 13
5 6 7 8 101
9 10 11 12 29
11 2 3 31 17

Se va afisa:
liniile: 4
coloanele: 3 5
Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #1 : Februarie 28, 2011, 19:59:19 »

Cod:
void linii ()
{
int i, j, ok;
for (i = 1; i <= N; ++i)
{
ok = 1;
for (j = 1; j <= M; ++j)
if ( !prim(A[i][j]) ) { ok = 0; break; }
if (ok == 1) printf("%d ", i);
}
}

Functia de prim probabil stii sa o faci. Acelasi lucru il faci si pentru coloane. Succes!  Ok
Memorat
tksds
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #2 : Februarie 28, 2011, 20:02:52 »

Trebuie facut in C++.

Eu am reusit sa fac:

Cod:
#include<conio.h>
#include<iostream.h>
#include<fstream.h>
int a[20][20],m,n;
void citire()
{   ifstream f;
    f.open("mat.in");
f>>n; f>>m;
int i,j;
for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
f>>a[i][j];

f.close();
}
void verificare()
{   int s,i,j,k,b,nr;
    for(i=1;i<=n;i++)
{  nr=0;
   for(j=1;j<=m;j++)
     {  b=a[i][j]; s=0;
        if(b==2||b==1||b==0)
    s=0;
    else for(k=3;k<=b;k++)
        if(b%k==0) s=1;
    if(s==0) nr++;
     }
   if(nr==m) cout<<" "<<n<<endl;
        }
}
void main()
{   citire();
    verificare();
}

Insa nu-mi afiseaza cand ii dau debug spune ca nu recunoaste <iostream.h>, sugestii?
« Ultima modificare: Martie 01, 2011, 00:07:37 de către FMI - Paul-Dan Baltescu » Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #3 : Februarie 28, 2011, 20:10:52 »

Prima data, pune-ti codul intre tagurile code, in al doilea rand in loc de conio.h, pe care ai putea sa-l stergi, si de celelalte doua, sa pui iostream, fstream ( fara .h ) , si sa adaugi using namespace std ; .
Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #4 : Februarie 28, 2011, 20:11:51 »

Faci o gramada de greseli... Ai de citit o matrice, deci nu poti scrie: "f >>a [j];".

Cod:
#include <fstream>
#include <iostream>
using namespace std;

int A[20][20];
int N, M;

void citire()
{  
ifstream fin("tema.in");
   fin>>N; fin>>M;
   int i,j;
   for(i=1;i <= N;i++)
       for(j=1;j <= M;j++)
         fin >> A[i][j];
}

int prim (int x)
{
int i;
if (x == 1) return 0;
if (x == 2) return 1;
for (i = 2; i < x; ++i)
if (x % i == 0) return 0;
return 1;
}

void linii ()
{
int i, j, ok;
for (i = 1; i <= N; ++i)
{
ok = 1;
for (j = 1; j <= M; ++j)
if ( !prim(A[i][j]) ) { ok = 0; break; }
if (ok == 1) cout << i << " ";
}
}

int main()
{  
citire();
        linii ();
}
Memorat
tksds
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #5 : Februarie 28, 2011, 20:29:19 »

Am copiat ce ai scris tu skull insa tot nu-mi afiseaza ce vrea problema.

Se va afisa:
liniile: 4
coloanele: 3 5
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #6 : Februarie 28, 2011, 20:59:23 »

Skull, el citea A[j] pentru ca facea A[ i ][ j ], si cum el o scris fara cod, atunci [ i ] ( fara spatii ) ii facea testul italic.
Memorat
skull
Client obisnuit
**

Karma: 17
Deconectat Deconectat

Mesaje: 75



Vezi Profilul
« Răspunde #7 : Februarie 28, 2011, 21:03:10 »

Am copiat ce ai scris tu skull insa tot nu-mi afiseaza ce vrea problema.

Se va afisa:
liniile: 4
coloanele: 3 5

Pai poti sa afisezi si tu "liniile: " si sa faci acelasi lucru pentru coloane. Ti-am rezolvat 95% din problema. Macar incearca sa intelegi ce se intampal acolo, nu doar sa copiezi si rezolva completarile.

Skull, el citea A[j] pentru ca facea A[ i ][ j ], si cum el o scris fara cod, atunci [ i ] ( fara spatii ) ii facea testul italic.

Ai dreptate, n-am observat ca-i inclinat textul.  Very Happy
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines