Sunteți pe pagina 1din 27

MINISTERUL EDUCAIEI AL REPUBLICII MOLDOVA

COLEGIUL DE INFORMATIC CHIINU

RAPORT
PE PRACTICA INSTRUCTIV
LA SPECIALITATEA: Informatica
Al ELEVULUI: GR:I-1411
NUMELE, PRENUMELE: Belotcaci Dumitru
TEMA RAPORTULUI: Orae

Loculpracticii: Colegiul de Informatic

Conductorul: GaburNadejda

Nota:____

Chiinu 2015

1
Cuprins
1.Introducere ...................................................................................................................................... 3
1.2.Obiectivele practicii................................................................................................................................ 4
1.3.Competentele practicii ........................................................................................................................... 4
2.Enunul problemei individuale ...................................................................................................... 5
3.Schema bloc a programului ........................................................................................................... 6
4.Schema bloc a subprogramului ARA ..................................................................................... 7
5.Listing-ul programului ................................................................................................................... 8
6.Rezultatul testrii subprogramelor ............................................................................................. 18
MENIUL ..................................................................................................................................................... 18
Subprogramul 1 ....................................................................................................................... 18
Subprogramul 2 ....................................................................................................................... 19
Subprogramul 3 ....................................................................................................................... 19
Subprogramul 4 ....................................................................................................................... 20
Subprogramul 5 ....................................................................................................................... 20
Subprogramul 6 ....................................................................................................................... 20
Reprezentarea rezultatelor n MSExcel ........................................................................................ 21
Item 1. .......................................................................................................................................................... 21
Item 2 ........................................................................................................................................................... 22
Item 3 ........................................................................................................................................................... 22
Item 4 ........................................................................................................................................................... 22
Item 5 ........................................................................................................................................................... 23
Item 6 ........................................................................................................................................................... 23
Item 7 ........................................................................................................................................................... 24
Item 8 ........................................................................................................................................................... 25
7.Concluzie ....................................................................................................................................... 26
8.Bibliografie .................................................................................................................................... 27

2
1.Introducere
Formarea profesional are dou mari componente : 1. nelegerea i acumularea
cunotinelor teoretice pe care se bazeaz aciunea profesional ; 2. Dezvoltarea abilitii de
practicare a profesiei respective i de aplicare a cunotinelor teoretice .Cele doua componente
presupun n mod obligatoriu legarea studiului teoretic cu disponibilitatea pentru aplicarea
cunotinelor n practic .

Pascal este unul din cele mai accesibile limbaje algoritmice pentru a scrie aplicaii n
domeniul automatizrii procesului de prelucrarea pe calculator a informaie.Desigur, exist mai
multe limbaje specializate pentru scrierea aplicaiilor de acest gen ns n realitatea exist un
numr mare de probleme relativ simple , care pot fi rezolvate la fel de efectiv cu utilizarea unor
mijloace mult mai convenabile de programare ,de exemplu limbajul Pascal .Pe alt parte pentru
utilizator nceptor n domeniul automatizrii prelucrrii informaiei este mult mai accesibil de a
obine deprinderile i cunotinele respective prin intermediul utilizrii unui limbaj relativ simplu
i care s fie destul de aproape de i limbajele specializate .

Practica este antrenat n aplicarea practic a cunotinelor profesionale .

O component de prim importan n pregtirea absolvenilor de calificare nalt, s-a dovedit a fi


pregtirea practic a studenilor ,care se realizeaz pe parcursul precticii instructive , practicii
tehnologice i celei de absolvire , asigurnd conexiunea instruirii toretice cu activitatea de producie
i inginereasc.

Obiectivul fundamental al acestei activiti este ca, prin implicarea direct n activitatea
acesteia s capete deprinderile i abilitile necesare n practica profesiei. Practica reprezint un
pas foarte important n pregtirea ca specialist. Chiar dac pascal nu o s imi trebuiasc n
activitatea profesional, el rmne primul limbaj n care am nvat s implementez algoritmi care
se folosesc pe larg de programatori. Desigur c pentru nceput mi-am reamintit cum s
implementez procedurile i funciile pentru a-mi simplifica munca. Pentru mine pascal o s rmn
prima experien n activitatea profesional pe care spre s o obin pe viitor.

3
1.2.Obiectivele practicii
Consolidarea cunotinelor teoretice , obinute de studeni pe tot parcursul studierii
limbajelor de programare ( Turbo Pascal) .
nsuirea tehnologiei de elaborare .
Dezvoltarea abilitilor muncii de sine stttoare .
Formarea deprinderilor de cercettor .
1.3.Competentele practicii

S aplice structuride baz ale algoritmului precum i ciclurile implicate ;


S creeze fiierele text de intrare adecvate formulrii sarcinii individuale ;
S elaboreze tehnici de actualizare a coninutului unui fiier text prin :
excluderea ,adugarea sau modificarea liniilor ;
S selecteze modurile de alocare a memoriei (dinamica ,statistica ) pe parcursul prelucrrii
datelor ;
S organizeze structurile de date de tip tablou pentru prelucrarea masivilor de date de acela
tip ;
S utilizeze funcii i proceduri standart la prelucarea irurilor de caractere ;
S aplice tipul articol ca structur de date care poate conine component de tipuri diferite ;
S aplice metode de sortare a datelor din fiier conform criteriului indicat ;
S elaboreze subprograme de memorie pentru programul principal i pentru fiecare pentru
subprogramele descrise ;
S creeze un meniu destinat gestionrii execuiei la solicitarea subprogramelor asociate sub
sarcini respective ;
S aplice tehnici de testare i depanare a programelor elaborate .

4
2.Enunul problemei individuale
XXVIII. Orae . Informaiile despre n orae sunt stocate n fiierul textul Orae.txt , fiecare
linie a crui corespunde unui singur ora i reciproc. Olinie a fiierului include atribute ale oraului
respectiv, separate prin spaiu :
DenOr ( Denumirea Oraului ) ; Denara (Denumirea rii) ; NumLoc (Numrul de locuitori);
Coordonatele geografice : Long (Longitudinea-estic sau vestic,putnd avea, n grade valorile
0+180), Lat (Latitudinea-nordic sau sudic , putnd avea n grade valorile 0-90); de exemplu,
Or.Chiinu are urmtoarele coordonate geografice : Long = E28 (longitudine estic de 28 grade ),
Lat = N47 (latitudine nordic de 47 grade).
S se elaboreze n limbajul Pascal un program care, folosind meniuri i subprograme, s
realizeze, la solicitarea utilizatorului, urmtoarele prescripii :
1) nregistraz un nou ora;
2) Exclude din fiierul Orae.txt linia ce corespunde oraului cu denumirea indicat de la
tastatur;
3) Afieaz pe ecran lista oraelor, ordoante dup aezarea geografic de la nord la sud;
4) Creeaz fiierul textual Tara.txt, n care se vor copia acele linii ale fiierului de intrare ,
care corespund oraelor rii , denumirea crei se indica la tastatur;
5) Afieaz pe ecran atributele oraelor cu numr minim i maxim de locuitori;
6) Determin media numurului de locuitori ale oraelor n studiu .

Realizai urmtoarele sarcini in aplicaia MSExcel:


1) Importai fiierul Orase.txt;
2) Inserai pentru tabel titlu i denumirea cmpurilor; redenumii foaia n Informatii.
3) Formatai tabelul: stabilii chenarul, proprietile fontului etc.
4) Valorile pentru cmpul Denumirea trii vor fi selectate dintr-o list de valori
predefinite.
5) Inserai n celule pentru fiecare ora imaginea drapelului rii respectiv. Inserai pentru
titlu un comentariu, n care va fi afiat imaginea globului.
6) Calculai: numrul mediu de locuitori; numrul total de locuitori n oraele Republicii
Moldova, respectiv n oraele peste hotare i numrul total de locuitori; numrul mediu de
locuitori n oraele Italiei. Rezultatele calculelor vor fi afiate ntr-o foaie nou cu numele
Statistica.
7) Reprezentai grafic numrul de locuitori pentru fiecare ora.
8) Afiai lista oraelor unei ri, denumirea creia este selectat dintr-o list ascuns
(ComboBox).
5
3.Schema bloc a programului

6
4.Schema bloc a subprogramului ARA

7
5.Listing-ul programului
Program Dumitru;
uses crt;
type ORAS = record
DenOr:string;
DenTar:string;
NumLoc:longint;
Long:string;
Lat:string;
end;
const max_orase = 100;
var comm:integer;
fin:text;
s:string;
procedure register(var f:text);
var s:string;
n:longint;
aux:text;
oras_nou:ORAS;
begin
assign(aux, 'temp.txt');
rewrite(aux);
assign(f, 'Orase.txt');
reset(f);
while (not(eof(f))) do
begin
readln(f, s);
writeln(aux,s);
end;
close(aux);
close(f);
reset(aux);
rewrite(f);

8
read(aux, n);
inc(n);
if (n = 1) then writeln(f, n) else write(f, n);
while (not(eof(aux))) do
begin
readln(aux, s);
writeln(f,s);
end;
writeln('Scrie datele despre noul oras');
with oras_nou do
begin
writeln('Denumirea orasului');
readln(DenOr);
writeln('Denumirea tarii');
readln(DenTar);
writeln('Numarul de locuitori');
readln(NumLoc);
writeln('Longitudinea');
readln(Long);
writeln('Latitudinea');
readln(Lat);
write(f, DenOr,' ', DenTar,' ', NumLoc,' ', Long,' ', Lat);
end;
close(aux);
close(f);
writeln('Adaugare cu succes, apasa ENTER pentru a continua');
readln();
end;
procedure exclude(var f:text; pivot:string);
var index, n, i:integer;
gasit:boolean;
aux:text;
begin

9
assign(f, 'Orase.txt');
reset(f);
while (not(eof(f))) do
begin
readln(f, s);
index := pos(' ',s);
if (copy(s,1,index-1) = pivot) then
begin
gasit := true;
break;
end;
end;
if (gasit = false) then
begin
writeln('Nu exista orasul cu denumirea ceruta');
writeln('Pentru a continua apasa ENTER');
readln();
close(f);
exit;
end;
close(f);
reset(f);
assign(aux, 'temp.txt');
rewrite(aux);
read(f, n);
dec(n);
write(aux, n);
while (not(eof(f))) do
begin
readln(f, s);
index := pos(' ',s);
if (copy(s,1,index-1) <> pivot) then
writeln(aux, s);

10
end;
close(f);
close(aux);
reset(aux);
rewrite(f);
for i:=1 to n+1 do
begin
readln(aux, s);
if (i = n+1) then write(f,s) else writeln(f, s);
end;
close(f);
close(aux);
writeln('Orasul a fost eliminat cu succes');
writeln('Pentru a continua apasa ENTER');
readln();
end;

procedure ShowCities(var f:text);


var n, i, j, npos, EROARE:longint;
orase:array[1..max_orase] of ORAS;
s:string;
oras_aux:ORAS;
begin
assign(f,'Orase.txt');
reset(f);
readln(f, n);
for i:=1 to n do
begin
readln(f, s);
with orase[i] do
begin
DenOr :=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));

11
DenTar :=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1), NumLoc, EROARE);
delete(s,1,pos(' ',s));
Long :=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
Lat := s;
end;
end;
for i:=1 to n do
for j:=1 to n-1 do
begin
if (orase[j].Lat > orase[j+1].Lat) then
begin
oras_aux := orase[j];
orase[j] := orase[j+1];
orase[j+1] := oras_aux;
end;
end;
npos := 0;
for i:=1 to n do
if (orase[i].Lat[1] = 'N') then inc(npos);
for i:=1 to npos do
for j:=1 to npos-1 do
begin
if (orase[j].Lat < orase[j+1].Lat) then
begin
oras_aux := orase[j];
orase[j] := orase[j+1];
orase[j+1] := oras_aux;
end;
end;
for i:=npos+1 to n do

12
for j:=npos+1 to n-1 do
begin
if (orase[j].Lat > orase[j+1].Lat) then
begin
oras_aux := orase[j];
orase[j] := orase[j+1];
orase[j+1] := oras_aux;
end;
end;
for i:=1 to n do
writeln(orase[i].DenOr,' ', orase[i].Lat);
writeln('Sfarsitul sortarii de la nord la SUD');
writeln('Pentru a continua apasa ENTER');
readln();
end;

procedure Tara_txt(var f:text; cuvant:string);


var aux:text;
s:string;
n:integer;
begin
assign(aux,'Tara.txt');
rewrite(aux);
assign(f, 'Orase.txt');
reset(f);
readln(f, n);
while(not eof(f)) do
begin
readln(f, s);
writeln(pos(cuvant, s));
if (pos(cuvant, s) <> 0) then writeln(aux, s);
end;
writeln('Formarea fisierului Tara.txt s-a finalizat cu success');

13
writeln('Pentru a continua apasa ENTER');
close(f);
close(aux);
readln();
end;

procedure ShowMinMax(var f:text);


var min, max, i, n, EROARE:integer;
orase:array[1..max_orase] of ORAS;
begin
assign(f,'Orase.txt');
reset(f);
readln(f, n);
for i:=1 to n do
begin
readln(f, s);
with orase[i] do
begin
DenOr :=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
DenTar :=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1), NumLoc, EROARE);
delete(s,1,pos(' ',s));
Long :=copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
Lat := s;
end;
end;
min := 1;
max := 1;
for i:=1 to n do
begin

14
if (orase[i].NumLoc < orase[min].NumLoc) then min := i;
if (orase[i].NumLoc > orase[max].NumLoc) then max := i;
end;
writeln('Cel mai populat oras');
with orase[max] do
writeln(DenOr,' ', DenTar,' ', NumLoc,' ', Long,' ', Lat);
writeln('Cel mai putin populat oras');
with orase[min] do
writeln(DenOr,' ', DenTar,' ', NumLoc,' ', Long,' ', Lat);
writeln('Afisarea celor doua orase s-a finalizat cu success');
writeln('Pentru a continua apasa ENTER');
close(f);
readln();
end;

procedure ShowAverage(var f:text);


var sum, i, n, EROARE:longint;
orase:array[1..max_orase] of ORAS;
begin
assign(f,'Orase.txt');
reset(f);
readln(f, n);
sum := 0;
for i:=1 to n do
begin
readln(f, s);
with orase[i] do
begin
delete(s,1,pos(' ',s));
delete(s,1,pos(' ',s));
val(copy(s,1,pos(' ',s)-1), NumLoc, EROARE);
sum := sum + NumLoc;
end;

15
end;
writeln('Media populatiei este=',sum/n:0:0);
writeln('Media populatiei s-a finalizat cu success');
writeln('Pentru a continua apasa ENTER');
close(f);
readln();
end;

begin
comm := -1;
while (comm <> 0) do
begin
clrscr;
textcolor(white);
writeln('Alege una din comenzi');
writeln('1 - Inregistreaza un nou oras');
writeln('2 - Exclude din fisier un oras');
writeln('3 - Afiseaza lista oraselor ordonate dupa asezare');
writeln('4 - Creeaza fisierul textul Tara.txt cu orase ce apartin unei tari');
writeln('5 - Afiseaza pe ecran atributelor oraselor cu numar minim si maxim de
locuitor');
writeln('6 - Determina media numarului de locuitori ale oraselor in studiu');
writeln('0 - Iesire');
readln(comm);
if (comm = 1) then register(fin)
else if (comm = 2) then
begin
writeln('Scrie denumirea orasului care trebuie exclus');
readln(s);
exclude(fin, s);
end
else if (comm = 3) then
begin
16
ShowCities(fin);
end
else if (comm = 4) then
begin
writeln('Scrie tara cautata');
readln(s);
Tara_txt(fin, s);
end
else if (comm = 5) then
begin
ShowMinMax(fin);
end
else if (comm = 6) then
begin
ShowAverage(fin);
end;
end;

end.

17
6.Rezultatul testrii subprogramelor
MENIUL

Meniul principal propune rezolvarea a oricrui din cei 6 itemi la solicitarea utilizatorului i a
nchiderii lui .
Dac se va introduce un caracter nevalid programul ne va anuna, i ne va propune s
reintroducem operaia .
Pentru iesire din program vom accesa tasta 0 .

Subprogramul 1
n primul subprogram cerina principal este de a nregistra un nou Ora.

Datele de intrare sunt indroduse de la tastatur i sunt alese la dorina utilizatorului

La alegerea opiunii 1 , se va apela subprogramul nr.1 ,n meniul acesta va fi opiunea de nregitare


a unui nou Ora.

18
Subprogramul 2

La alegerea opiunii 2 , se va apela subprogramul nr.2.Aceasta presupune excluderea Oraului cu


numele X.

Subprogramul 3
La alegerea opiunii 3 , se va apela subprogramul nr.3 .Aceasta presupune afisarea oraelor dup
aezare .

19
Subprogramul 4

La alegerea opiunii 4, se va apela subprogramul nr.4 .Aceasta presupune crearea

fiierului textual Tara.txt cu oraele ce aparin unei ri ;

Subprogramul 5
La alegerea opiunii 5 se va apela subprogramul nr.5, aceasta va afia pe ecran atributele oraelor cu
numar maxim i minim de locuitori;

Subprogramul 6
La alegerea opiunii 6, se va apela subprogramul nr.6 .Aceasta presupune determinarea mediei
numrului de locuitori ale oraelor n studiu.

20
Reprezentarea rezultatelor n MSExcel
Item 1.
1)Importarea fiierului Orae.txt.

21
Item 2
2)Inserai pentru tabel titlu i denumirea cmpurilor ; redenumii foaia n Informaii

Fig.2

Item 3
3) Formatai tabelul: stabilii chenarul, proprietile fontului etc.

Fig.3

Item 4
4) Valorile pentru cmpul Denumirea trii vor fi selectate dintr-o list de valori
predefinite.

Fig.4

22
Item 5
5) Inserai n celule pentru fiecare ora imaginea drapelului rii respectiv. Inserai pentru
titlu un comentariu, n care va fi afiat imaginea globului.

Fig.5

Fig.6

Item 6
6) Calculai: numrul mediu de locuitori; numrul total de locuitori n oraele Republicii
Moldova, respectiv n oraele peste hotare i numrul total de locuitori; numrul mediu de
locuitori n oraele Italiei. Rezultatele calculelor vor fi afiate ntr-o foaie nou cu numele
Statistica.

23
Item 7

7) Reprezentai grafic numrul de locuitori pentru fiecare ora.

Fig.7

24
Item 8

8) Afiai lista oraelor unei ri, denumirea creia este selectat dintr-o list ascuns
(ComboBox).

Fig.8

25
7.Concluzie

Dup trecerea a cestor dou sptmni de practic am format noi competene i deprinderi n
domeniul Programrii calculatorului . Am aplicat pe deplin cunotinele acumulate timp de 2
semestre i chiar dac am ntlnit unele dificulti,am apelat la literatur i la conspectele scrise la
perechile anterioare .

n pedioada practicii instrutive am reuit s recapitulez tehnicile de pogramare i


instruciunile de programare Turbo Pascal . La fel pe parcursul practicii am nsuit tehnologia de
elaborare a programelor mari , i divizarea lor n mai complexe i mai simple i reducerea lor la cele
deja rezolvate .

Am aprofundat cunotinele n utilizarea tipurilor structurate i de date aa ca : tablourile


bidimensionale ,fiierele ,citirea datelor din fiier , nscrierea i opererea datelor din acestea. La fel
mi-am reamintit cum se face o schem bloc i cum se calculeaz necesarul de memorie, consultnd
diverse surse .n acest timp am utilizat funciile i procedurile, am creat un meniu destul de clar pe
neles pentru a fi utilizat i nu n ultimul rnd am testat produsul pe care l-am elaborat. A dori s
adaug c mi-am actualizat cunotinele .Eu nu sunt sigur c cineva poate s aib nevoie de acest
produs, dar tiu c pentru mine a fost o ncercare , aceast problem pe care sper s o ndeplinii cu
brio i c e nceputul meu de carier n programare .

Consider c pentru un programator bun n primul rnd este necesar nstruirea practic,
deoarece doar prin practic putem analiza i aplica cunotinele teoretice pe care le-am acumulat i
care de foarte multe ori nu sunt nelese pn la urm .

26
8.Bibliografie
Anatol Grimalschi. Informatic , manual pentru cl.X-a,editura tiina, 2012.
Gremalschi Anatol, Mocanu Iurie, Spenei Ion. Limbajul Pascal pentru cl.IX-XI, editura
tiina 2003 .
Moraru Florin. Bacaleaureat. Informatic. Bucureti,editura Perion, 2000.
Sorin T., Tehnici de programare .Manul pentru clasa X-a ,Editura L&S Informat
www.bitcell.info
www.epascal.com
www.hackpedia.com
www.tp7.info
http://it-informatic.blogspot.com/2012/02/raport-de-practica-instuctiva-la.html

27