Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Informatica / Problema admitere! : Aprilie 06, 2015, 14:11:13
Subiectul 3
Se citeşte de la tastatură o matrice pătratică A cu n linii și n coloane conținȃnd
numere naturale (3 ≤ n ≤ 50, 1 ≤ ai,j ≤ 20000). Scrieţi un program care
determină și apoi tipărește şirul X, conținȃnd ȋn ordine descrescătoare,
numerele „superprime” distincte, care apar ȋn triunghiul stȃng sau cel drept al
matricei A. Șirul X se va construi direct ordonat, fără a face ordonarea
ulterioară. Ȋn cazul ȋn care șirul X este vid, se va tipări mesajul „Șirul este vid”.
Un număr se numește „superprim” dacă toate prefixele sale sunt numere prime
(de ex. 239 este „superprim” deoarece 2, 23 și 239 sunt prime, dar numărul 241
nu este „superprim” deoarece 24 nu este prim).
Se vor scrie subprograme pentru:
a). citirea unei matrici pătratice
b). tipărirea unui şir
c). verificarea dacă un număr este prim
d). verificarea dacă un număr este „superprim”
e). inserarea unei valori ȋntr-un șir ordonat descrescător
f). construirea șirului X.

Nu imi afiseaza rezultatul, nu imi pot da seama unde se blocheaza.

program testare;
uses crt;
type mat=array[1..50,1..50] of integer;
type vect=array[1..200] of integer;
var a:mat;
    x:vect;
    n,k:integer;

procedure citire(a:mat;n:integer);
var i,j:integer;
  begin
    for i:=1 to n do
        for j:=1 to n do
            begin
                 write('a[',i,',',j,']= '); readln(a[i,j]);

            end;end;

procedure tiparire(x:vect;n:integer);
var i:integer;
begin
    if n=0 then writeln ('Sirul este vid')
           else
             for i:=1 to n do
                 write(x, ',');
             writeln;
end;

function test_nr_prim(n:integer):boolean;
var d:integer;
    e_prim:boolean;
begin
  e_prim:=true;
  if (n=1) then e_prim:=false;
  for d:=2 to n-1  do
      if n mod d=0 then
         e_prim:=false;
  test_nr_prim:=e_prim;

end;

function esuperprim(n:integer):boolean;
var super:boolean;
begin
  super:=true;
  while (n<>0) do  begin
        if (test_nr_prim(n)=false) then super:=false;
    n:=n div 10;
  end;
  esuperprim:=super;
end;

procedure inserare_ordonata(x:vect;n:integer;v:integer);
var i,pozitie:integer;
    begin
      pozitie:=1;
      while (x[pozitie]>v) and (pozitie<=n) do
            pozitie:=pozitie+1;
      for i:=pozitie to n do
          x[i+1]:=x;
      x[pozitie]:=v;
      n:=n+1;
      end;

function apartine(x:vect;n:integer;v:integer):boolean;
var gasit:boolean;
    i:integer;
begin
  gasit:=false;
    while i<=n do
        if x=v then gasit:=true;
    apartine:=gasit;
end;

procedure construire_sir(a:mat;n:integer;x:vect;var k:integer);
var i,j:integer;
    begin
      k:=0;
       for i:=1 to n do
           for j:=1 to n do
               if ((i>j) and (i+j<n+1)) or ((i<j) and (i+j>n+1)) then
                  if ((esuperprim(a[i,j])=true) and apartine(x,k,a[i,j])=false)
                     then begin
                       k:=k+1;
                       inserare_ordonata(x,k,a[i,j]);
                          end;

    end;



begin
  write ('Numarul de linii si coloane = ');readln(n);
  citire(a,n);
  construire_sir(a,n,x,k);
  tiparire(x,k);
  readln;
  end.
           
2  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Problema siruri! : Iunie 12, 2013, 21:53:31
Multumesc de ajutor.Am reusit sa rezolv acest algoritm.As mai avea o nelamurire cum sa calculez suma aceasta:

s=1-a+a^2-a^3+a^4+...+(-1)^n * a^n

a numar real
n numar natural
3  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Problema siruri! : Iunie 12, 2013, 21:31:22
La asta m-am gandit si eu dar nu stiu cum sa fixez a si b sa verific fiecare pereche.
4  infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: Problema siruri! : Iunie 12, 2013, 20:59:10
Da.Am inceput sa lucrez algoritmi cat mai multi si sa ii implementez in pascal.Sunt incepator.As vrea o idee despre rezolvarea acestei probleme.
5  infoarena - concursuri, probleme, evaluator, articole / Informatica / Problema siruri! : Iunie 12, 2013, 20:20:54
Se citeste un numaru natural n.Sa se determine toate perechile de numere naturale a si b care verifica relatia a^2 + b^2=n.
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines