Atestat Informatica – Pascal/C/C++ – P. 15
Problema cu numarul 15 pentru atestatul la informatica.
Subiect
Se considera un tablou bidimensional patratic a cu n linii ale carui elemente memoreaza doar valori 0 si 1. Liniile si coloanele tabloului sunt numerotate incepand cu 1. Fisierul date.in contine pe prima linie numarul n, iar pe urmatoarele n linii sunt scrise cate n valori 0 si 1, separate cu cate un spatiu, reprezentand valorile elementelor tabloului a.
Se considera subprogramele:
- - s1 care primeste prin intermediul parametrilor: a, un tablou bidimensional patratic cu cel mult 29 de linii, n, numarul efectiv de linii ale tabloului a, i, indicele unei linii din tabloul a. Subprogramul returneaza TRUE daca linia i contine cel putin trei valori 1 situate pe pozitii alaturate, altfel va returna FALSE
- - s2 care primeste prin intermediul parametrilor: a, un tablou bidimensional patratic cu cel mult 29 de linii, n, numarul efectiv de linii ale tabloului a, j, indicele unei coloane din tabloul a. Subprogramul returneaza un numar natural reprezentand suma valorilor elementelor din coloana j a tabloului a
Cerinta
- - scrieti definitia completa a celor doua subprograme
- - scrieti un program principal Pascal/C/C++ care, folosind apeluri utile ale celor doua subprograme, sa citeasca datele din fisierul date.in si care sa determine si sa scrie in fisierul date.out pe prima linie numarul de linii ale tabloului a, linii ce contin cel putin 3 valori 1 situate pe pozitii alaturate, si pe a doua linie, separati prin cate un spatiu, indicii coloanelor ce contin mai multe valori 1 decat valori 0
Rezolvare in Pascal
Type matrice = array[1..30,1..30] of integer;
var a: matrice;
n, i, j, k: integer;
f, g: text;
procedure s1(var a: matrice; var n: integer);
var i, j: integer;
begin
readln(f, n);
for i := 1 to n do
for j := 1 to n do
read(f, a[i,j]);
close(f);
end;
function s2(a: matrice, n, l: integer):integer;
var j: integer;
begin
s2 := 0;
for j := 1 to n-2 do
if a[l,j] + a[l,j+1] + a[l,j+2] = 3 then
s2 := 1;
end;
function s3(a: matrice; n, c: integer):integer;
var i, k: integer;
begin
k := 0;
for i := 1 to n do
if a[i,c]=1 then k := k + 1;
s3 := k;
end;
begin
assign(f, 'date.in');
reset(f);
assign(g, 'date.out');
rewrite(g);
k := 0;
s1(a, n);
for i := 1 to n do
if s2(a, n, i) = 1 then
k := k + 1;
writeln(g, k);
k := 0;
for j := 1 to n do
if s3(a, n, j) > n/2 then
begin
write(g, j, ' ');
k := k +1;
end;
if k = 0 then writeln(g, 'NU')
else writeln(g);
close(g);
end.
Rezolvare in C/C++
#include
void s1(int a[30][30], int &n) {
int i, j;
ifstream f("date.in");
f>>n;
for(i=1;i<=n;i++)
for(j=1;j>a[i,j];
f.close();
}
int s2(int a[30][30], int n, int l) {
int j;
for(j=1;j<=n-1;j++)
if(a[l][j]+a[l][j+1]+a[l][j+2]==3) return 1;
return 0;
}
int s3(int a[30][30], int n, int c) {
int i, k=0;
for(i=1;i<=n;i++)
if(a[i][c]==1) k++;
return k;
}
void main() {
int a[30][30], n, i, j, k=0;
ofstream g("date.out");
s1(a, n);
for(i=1;i<=n;i++)
if(s2(a, n, i)) k++;
g<<k<<endl;
k=0;
for(j=1;jn/2) {
g<<j<<' ';
k++;
}
if (!k) g<<"NU"<<endln;
else g<<endln;
g.close();
}
C’ya next time!
Ti-a placut articolul Atestat Informatica – Pascal/C/C++ – P. 15?
TweetAi nevoie de rezolvarea unei probleme la informatica?
Iti recomandam si urmatoarele articole:
1 comentariu pentru Atestat Informatica – Pascal/C/C++ – P. 15
Discuta articolul Atestat Informatica – Pascal/C/C++ – P. 15
Contul tau
Categorii
- Atestat Info C/C++ (21)
- Atestat Info Pascal (21)
- Learn AJAX (3)
- Learn Android (5)
- Learn C++ (32)
- Learn CSS (11)
- Learn Database (9)
- Learn Flash (33)
- Learn HTML (14)
- Learn JAVA (9)
- Learn Javascript (14)
- Learn jQuery (17)
- Learn Pascal (28)
- Learn PHP (21)
- Learn SQL (5)
- Learn Visual FoxPro (4)
- Tips & Tricks (22)
Mozku Network
Ne gasesti si pe Facebook
Articole noi
- Cum sa detectati rezolutia telefonului intr-o aplicatie Android
- Cum se evita oprirea fortata a unei aplicatii
- Cum sa porniti o activitate noua in Android
- Cum sa adaugati un ImageView intr-o aplicatie Android
- Cum sa adaugati un Button intr-o aplicatie Android
- Cum sa utilizati un ArrayList in Java
- Bifeaza toate checkbox-urile folosind jQuery
- Validare formular folosind jQuery
Fisiere populare
- Proiect Atestat Informatica Visual FoxPro (439)
- Twitter Patterns (202)
- Flash Newsletter (126)
- Baza de date auto revizuita (99)
- hitTest Flash (99)
Marcaje articole
actionscript 2
AJAX
android
animatii Flash
animatii jQuery
as2
atestat informatica
atestat informatica intensiv
background css
baza de date in flash
baze de date
c++ start
compatibilitate browsere
conditional comments
css
efecte jQuery
flash
flash and php
functii javascript
html
invata c
invata Flash
invata Javascript
invata jQuery
invata pascal
invata php
invata sql
invata visual fox
Java
javascript
jQuery
layout html
learn
Learn CSS
Learn HTML
math in flash
numar cifre c++
Pascal
php functions
php queries
structuri
suma
suma cifrelor c++
tabel baza de date
vector

frumoasa problema…speram sa-mi cada la bacalaureat :|-)