Sunteți pe pagina 1din 9

BAZELE UNUI LIMBAJ DE PROGRAMARE

PSEUDOCOD VS PASCAL VS C++


1.

1.
2.
3.
4.
5.

Structura unui program


Tipuri de date
Variabile. Constante
Operatori
Intrri-ieiri de baz

2.Tabloul
3.Fiiere. Operaii de intrare/ieire legate de fiiere
4. Structuri de control
5.Algoritmi fundamentali
Bibliografie : http://wiki.freepascal.org/Pascal_Tutorial
http://www.cplusplus.com/doc/tutorial/
manual; caiet
1.1.Structura unui program
Pascal
begin
write(Buna!);
end.

C++
#include <iostream>

Pseudocod
Programul v-a afia mesajul
Buna!

int main()
{
std::cout << "Buna!";
}

Pascal
Integer -3276832767

C++
Short int/int -32768..32767

Pseudocod
ntreg

Word 065535

Unsigned int 0..65535

Cuvnt

Shortint -128127

Char -128..127

Date mici

Byte 0255

Unsigned char 0..255

Bit

Longint -214748364821474836647

Long -214748364821474836647

Date mari

Int64 -9223372036854775808..
9223372036854775807

__int64 -9223372036854775808..
9223372036854775807

Date foarte mari

1.2.Tipuri de date

1.3. Variabile. Constante


Pascal
Integer

C++
Int

Real

Float

Char

Char

String

Long

Pseudocod
cuprinde valorile ntregi intre 32767 si 32767
include numere reale, cu si fr
virgula
valorile de acest tip conin
caractere cuprinde intre
apostrofe
permite memorarea unor
numere ntregi foarte mari( mai
mari dect cele menionate la
int)

1.4.Operatori

Pascal
:=
()
+,*, /

C++
=
()
+, *, /

Mod

Div

<
>
=
<>
<=
>=
NOT
AND
OR
XOR

<
>
==
!=
<=
>=
!
&&
||

Pseudocod
Atribuire()
Grupeaz expresiile
Adunare i scdere
nmulire i mprire
(mprirea cu virgul se face n
numere reale)
Returneaz restul (doar n
ntregi)
Returneaz ctul (doar n
ntregi)
Mai mic
Mai mare
Egal
Diferit
Mai mic sau egal
Mai mare sau egal
Negare
Conjuncia i
Conjuncia sau
Este specific doar la pascal

1.5. Intrri-ieiri de baz


Pascal
read(varn [, varn, , varn])

C++
cin >> i;

Pseudocod
citete de la tastatura variabilele
specificate(intrare)

read([f, ] var1 [, var2, , varn])

cin >> i;

readln

cin >> i

write(var1 [, var2, , varN])

cout << var;

write([f, ] var1 [, var2, ,


varN])

cout << var;

writeln

cout << var;


endl;

citete variabilele specificate,


din fiierul f(ieire)
Execute aceleai funcii ca read
, doar c acesta , trece la rnd
nou(intrare)
scrie variabilele specificate pe
ecran(ieire)
se scriu variabilele specificate
n fiierul f. Daca f lipsete, se
considera implicit
scrierea in fiierul OUTPUT
(ecran)(ieire)
Execute aceleai funcii ca write
, doar c acesta , trece la rnd
nou.(ieire)

2. Tabloul
Pascal
Variabil:array[Vi..Vf] of
variabila

C++
TipDat
NumeTablou[ExpresieConstInt]

Pseudocod
Declararea unui tabel.
se declara numele tabelului , se
da valoarea iniial , valoarea
finala si variabila.

3. Fiiere. Operaii de intrare / ieire pe fiiere


Pascal
program fiiere;{declar
variabilele f si g de tip fiiere
text}
var f,g:text
;a,b,s:integer;
begin{ 1. assignarea }
assign(f,'IN.txt');
assign(g,'OUT.txt');
{ 2. deschid pentru citire
fisierul 'in.txt' }
reset(f);
{ 3. citete de pe prima
linie numerele a si b }while not
eoln(f)
do begin
read(f,a,b);

C++

Pseudocod

#include<iostream.h>
using namespace std;
#include<fstream.h>
#include<values.h>
void main()
{
ifstream f("C:\\test.txt");
//sau: fstream f("C:\\test.txt",ios::in);
if(!f) //sau f=NULL
{
cout<<"Eroare la
deschiderea fisierului!"<<endl;
return;
}
int x[100], n_neg=0, s=0, i;

Programele citesc din fiierul text


si face suma numerelor gsite in
fiierul de intrare .Suma se v-a
scrie in fiierul de ieire , si se va
nchide.

end;{calcul suma}s:=a+b;{4.
deschid pentru scriere fisierul
'out.txt'}
rewrite(g);
{ 5. scriu in fiierul 'out.txt'
suma celor doua numere }
write(g,s);
{ 6. nchid cele 2 fiiere }
close(f);
close(g);
end.

f.seekg(0,ios::beg); //ne
poziionam la nceputul fiierului
i=0;
while(!f.eof())
{
f>>x[i];
if(x[i]<0)
n_neg++;
s+=x[i++];
}
f.close();
cout<<"Numrul elementelor
negative: "<<n_neg<<endl;
cout<<"Suma tuturor
elementelor: "<<s<<endl;
int k;
cin>>k;

Pascal
Read(variabila);
Write(variabila);
If conditie then
Actiune/ bloc de actiuni;
Else
Actiune2/bloc de actiuni2;
For contor:=Vi to Vf do
Begin
Actiune/bloc de actiuni;
End;
While conditie do
Begin
Actiune/bloc de actiuni;
End;
Repeat
Actiune/bloc de actiuni;
Until conditie

C++
instr1;
instr2;
.....
if (expresie)
instructiune1;
[ else
instructiune2; ]
for (expresie1; expresie2;
expresie3)
instructiune;

Pseudocod
Structura Liniara

Structura Alternativa

Structura repetitive cu numr


cunoscut de pai

while (expresie)
instructiune;

Structura repetitive cu numr


necunoscut de pai , cu test
anterior

do instructiune;
while(expresie);

Structura repetitive cu numr


necunoscut de pai , cu test
posterior

4.Structuri de control

5.Algoritmi fundamentali
Pascal
var numar: longint;
Rest : shortint;
Suma:word;
begin
write (Introduceti numarul:);
readln(numar);
suma:=0;
while (numar <>0 )do begin
rest:=numar mod 10;
suma := suma + rest;
numar := numar div 10;
end;
writeln(Suma cifrelor este :
,suma);
end.

C++
#include <iostream>
using namespace std;
int n,s,c;
int main()
{ cout<<n=;
cin>>n;
while(n>0)
{ c=n%10;
S=s+c;
N=n/10;
}
cout<<suma cifrelor este<<s;
return 0;
}

Pseudocod
Suma cifrelor unui numar introdus
de la tastatura

var x,y,n,rest:integer;
begin
Write ('x ia valoarea ');
Read (x);
Write ('y ia valoarea ');
Read (y);
if x<y then
begin
rest:=x;
x:=y;
y:=rest;
end;
n:=0;
while x>=y do
begin
x:=x-y;
n:=n+1;
end;
Writeln ('n= ',n);
Writeln ('x= ',x);readln;
end.

#include <iostream.h>
void main ()
{
int a,b
cout<<"a= ";
cin>>a;
cout<<"b= ";
cin>>b;
if (a<b)
{
a=a+b;
b=a-b;
a=a-b;
cout<<a<<", "<<b;
}
else
cout<<"a mai mare ca
b";
}

Algoritm de interschimbare

Var a,max:integer;
Begin
Read(a);
Max:=a;
While a<>0 do
Begin
If a>max then
Max:=a;
End;
Write(max);
End.

#include <iostream>
Using namespace std;
Int n,c,cif_max;
Int main()
{ cout<<n=;cin>>n;
While (n>0);
{ c=n%10;
If( c>cif_max)
Cif_max = c;
N=n/10;
}
Cout<<cifra maxima este;
Cout<<cif_max;
Return 0;
}

Program calcul;
var i,f1,f2,f3:integer;
begin
write(n=); readln(n);
f1:=1;
f2:=1;
write (f1, ,f2, );
for i:=3 to n do
begin
f3:=f1+f2;
write (f3, );
f1:=f2;
f2:=f3;
end;
end.

#include<iostream.h>
void main()
{
int i,n;
long f,p,a;
cout<<"n=";cin>>n;
p=a=1;
cout<<a<<" "<<p<<endl;
for(i=3;i<=n;i++)
{
f=p+a;
cout<<f<<endl;
a=p;
p=f;
}
}

Program nrprim;
Var n,i:integer;
h:Boolean;
Begin
write(n=); readln(n);
h:=true;
for i := 2 to trunc (sqrt (n))
do
if n mod i =0 then
h:=false;
if h then write (n, este numar
prim)
else write (nu este);
end.

#include<iostream.h>
void main()
{int numar,i,s;
s=0;
cout<<"Dati numarul";
cin>>numar;
for(i=1;i<=numar;i++)
{if(numar%i==0)
s=s+1;}
if(s==2)
cout<<"Numarul este prim"
else
cout<<"Numarul nu este prim"}

Algoritmul pentru determinarea


maximului

irul lui Fibonacci

Numr prim

program cmmdcii;
var a,b,r,aux :integer;
begin
read(a);
read (b);
if a <b then begin
aux:=a;
a:=b;
b:=aux;
end;
while r<>0 do
begin
r:=a mod b
a:=b;
b:=r;
end;
write (cmmdc=,a);
end.

#include <stdio.h>
int main()
{
int a,b,r;
scanf("%d %d",&a,&b);
r = a % b;
while(r != 0)
{
a = b;
b = r;
r = a % b;
}

program calcul;
var a,b,cmmc,x,y,r:integer;

#include <stdio.h>
int main()
{
int a,b,r,c,x,y;
scanf("%d %d",&a,&b);
x=a;
y=b;
while(b!=0)
{
r=a % b;
a=b;
b=r;
}
printf("cmmdc= %d\n",a);
c=x*y/a;
printf("cmmmc= %d",c);
return 0;
}

begin
read(a);
read(b);
x:=a;
y:=b;
repeat
r:=a mod b;
a:=b;
b:=r
until r=0;
cmmc:=(x*y)/ a;
write (c.m.m.m.c=,cmmc);
end.

program cmmdcii;
var a,b:integer;
begin
read(a);
read (b);
while a<>b do
if a>b then a:=a-b
else b:=b-a;
write (cmmdc=,a);

Cmmdc cu mpriri succesive

printf("cmmdc= %d",b);
return 0;
}

#include <stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);
while(a!=b)
{
if(a>b)
a=a-b;
else

Cmmmc a 2 numere

Cmmdc cu scderi succesive

end.

b=b-a;
}
printf("cmmdc= %d",a);
return 0;
}

var a:array[1..max] of integer;


n,i,st,dr,mij,x:integer;
gasit:boolean;
begin
write('Lg. tabloului='); readln(n);
{citirea tabloului}
for i:=1 to n do
begin write('a[',i,']='); readln(a[i]);
end;
readln;
{afisarea tabloului} for i:=1 to n
do write(a[i],' ');
Write('Ce element cautati ?');
readln(x);
st:=1; dr:=n;
gasit:=false;
while (not gasit) and (st<=dr) do
begin
mij:=(st+dr) div 2;
if x=a[mij] then gasit:=true else
if
x<a[mij] then dr:=mij-1
else
st:=mij+1
end;

#include<iostream.h>
int v[25];
int i,n,li,ls,mij,gasit,x;
void main()
{
cout<<n=;
cin>>n;
cout<<Cauta elementul =;
cin>>x;
for(i=1;i<=n;i++)
{cout<<v["<<i<<"]=;
cin>>v[i];}
for(i=1;i<=n;i++)
cout<<v[i]<< ;
cout<<endl;
li=1; //limita inferioara
ls=n; //limita superioara
gasit=0;

Cutare binar

if gasit then write('gasit');


end.
type vector=array[1..50] of
integer;
var v:vector; aux:integer;
ord:boolean;
i,n:byte;
begin
write('n= ');readln(n);
writeln('Intr. elem. in vector: ');
for i:=1 to n do begin
write('v[',i,']=');
readln(v[i]);
end;
writeln('Vectorul initial este: ');
for i:=1 to n do write(v[i],' ');

void
metoda_bulelor_imbunatatit(int
(&v)[20],int n)
{int i,ok,aux,p,x;
p=n;
do{
ok=1;
for(i=1;i<=p-1;i++)
if(v[i]>v[i+1])
{ok=0;
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
x=i;}

Sortarea unui vector prin metoda


bulelor

writeln;
{sortarea vectorului folosind
metoda bulelor}
repeat
ord:=true;
for i:=1 to n-1 do
if v[i]>v[i+1] then begin
aux:=v[i];
v[i]:=v[i+1];
v[i+1]:=aux;
ord:=false;
end;
until ord;
writeln('Vectorul sortat este: ');
for i:=1 to n do write(v[i],' ');
end.

p=x;}
while(ok==0);
}

S-ar putea să vă placă și