Documente Academic
Documente Profesional
Documente Cultură
RAPORT
PE PRACTICA DE INIIERE
LA SPECIALITATEA: Informatica
Al ELEVULUI GRUPEI: I-1411
NUMELE, PRENUMELE: Beghiu Alexandru
TEMA RAPORTULUI: Examene
Chiinu 2015
1
Cuprins
Introducere ......................................................................................................................................... 3
Obiectivele generale ale practicii de iniiere n specialitate:....................................................................... 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 meniu ......................................................................................... 7
5.Listing-ul programului ................................................................................................................. 10
6.Rezultatul testrii subprogramelor ............................................................................................. 14
MENIUL ..................................................................................................................................................... 14
Subprogramul 1 ....................................................................................................................... 14
Subprogramul 2 ....................................................................................................................... 15
Subprogramul 3 ....................................................................................................................... 15
Subprogramul 4 ....................................................................................................................... 15
Subprogramul 5 ....................................................................................................................... 16
Subprogramul 6 ....................................................................................................................... 16
Reprezentarea rezultatelor n Microsoft Excel ............................................................................. 16
Item 1. .......................................................................................................................................................... 16
Item 2 ........................................................................................................................................................... 17
Item 3 ........................................................................................................................................................... 17
Item 4 ........................................................................................................................................................... 17
Item 5 ........................................................................................................................................................... 17
Item 6 ........................................................................................................................................................... 18
Item 7 ........................................................................................................................................................... 19
Item 8: ......................................................................................................................................................... 19
7.Concluzie ....................................................................................................................................... 20
Bibliografie ....................................................................................................................................... 21
2
Introducere
In cadrul studiilor la colegiu am acumulat o totalitate de cunostinte cu privire la disciplinele
generale dar si cu privire la limbajul pascal, despre care va fi efectuat acest raport . In cadrul
practicii am avut de realizat un program in baza unui algoritm propus de catre administratia
colegiului. Urmatorii pasi vor prezenta competene, obiective, mersul lucrarii, algoritmul
programului, datele de intrare si iesire, cit si cite un screenshot pentru fiecare punct indeplinit al
programului dar i.
Se consider un model abstract al unui obiect, fenomen, proces sau sistem ntlnit n viaa
cotidian i/sau studiat n cadrul disciplinelor colare din ciclul liceal. Caracteristicile eseniale
(pentru scopul cercetrii) ale prototipului acestui model sunt sau pot fi nregistrate n unul sau
cteva fiiere de tip Text, fiecrui din care i este asociat o mulime de obiecte omogene. O linie a
unui aa fiier conine seturile specificate de atribute (eventual de tipuri diferite) ale unui obiect din
mulimea asociat acestui fiier. Lungimile liniilor fiierelor nu sunt limitate, ns, de regul, nu vor
depi 255 de caractere, caz n care se nlesnete citirea/scrierea unei linii din/n fiier. Mai mult,
atributele incluse ntr-o linie, se vor separa cu cte un singur spaiu, nlesnind astfel decuparea
datelor pentru prelucrarea ulterioar.
Setul de subsarcini este divizat n dou grupuri: primul grup impune realizri n limbajul
Pascal, iar cel de al doilea n MS Excel.
3
1.2.Obiectivele practicii
1.3.Competentele practicii
4
E cunoscut faptul, c aplicarea tehnicilor de organizare a subprogramelor la elaborarea
programelor mari, ofer anumite avantaje. De exemplu, utilizarea subprogramelor permite de creat
i de depanat componentele unui program, independent de celelalte componente ale acestuia.
XXIX. Examene. Informaiile despre reuita a n elevi la sesiunea de examen sunt stocate n
fiierul textual Elevi.txt, fiecare linie a crui corespunde unui singur elev i reciproc. O linie din
fiier conine urmatoarele date, separate prin spaiu: CodE (Codul elevului); NumeE (Numele
elevului); PrenE (Prenumele elevului); DenDisc1 (Denumirea disciplinei 1); NotaE1 (Nota de
examen la disciplina 1); DenDisc2 (Denumirea disciplinei 2); NotaE2 (Nota de examen la
disciplina 2); DenDisc3 (Denumirea disciplinei 3); NotaE3 (Nota de examen la disciplina 3).
5
3) Afieaz pe ecran lista elevilor n ordine alfabetic dupa nume, criteriul al doilea de
sortare fiind prenumele elevului;
4) Creeaz fiierul textual Rest.txt, n care se vor copia acele linii ale fiierului de intrare,
ce corespund elevilor cu note insuficiente la examene;
5) Afieaz pe ecran numrul cel mai mare de note insuficiente obinute la o disciplin i
denumirea acestei discipline;
6) Determin nota medie obinut de toi elevii la toate examenele.
Begin
Clrscr
Assign(elevi,levi.txt)
6
Reset(elevi)
Citire1(1,init)
Close (elevi)
meniu
end
Schema 1.
7
8
9
5.Listing-ul programului
program examene;
uses crt;
type
exam = record
code:longint;
nume:string;
prenume:string;
nota1,nota2,nota3:char;
dendisc1, dendisc2, dendisc3:string;
end;
lista = array [1..260] of exam;
var
elevi,rest: text;
elev1,init: lista;
o, n: integer;
exc:longint;
{++++++++++++++++++++++++MEDIA++++++++++++++++++++++++++++}
function media(med:lista):real;
var i :integer;
me:real;
begin
me:=0;
for i:=1 to o do
me :=me+ord(med[i].nota1)+ord(med[i].nota2)+ord(med[i].nota3);
media:=(me-48*o*3)/(o*3);end;
{++++++++++++++++++++++++++++DISCIPLINA+++++++++++++++++++}
procedure disciplina (evl:lista);
var i,n1,n2,n3:integer;
begin
n1:=0;n2:=0;n3:=0;
for i:=1 to o do begin
if evl[i].nota1 < '5' then n1:=n1+1;
if evl[i].nota2 < '5' then n2:=n2+1;
if evl[i].nota3 < '5' then n3:=n3+1;end;
if (n1>n2) and (n1>n3) then write('Disciplina la care sunt note insuficiente
este: ',evl[i].dendisc1);
if (n2>n1) and (n2>n3) then write('Disciplina la care sunt note insuficiente
este: ',evl[i].dendisc2);
if (n3>n1) and (n3>n2) then write('Disciplina la care sunt note insuficiente
este: ',evl[i].dendisc3);
if (n1=n2) and (n3<n2) then write('Disciplinile la care sunt cele mai multe note
insuficiente sunt: ',evl[i].dendisc1,' si ',evl[i].dendisc2);
if (n1=n3) and (n2<n1) then write('Disciplinile la care sunt cele mai multe note
insuficiente sunt: ',evl[i].dendisc1,' si ',evl[i].dendisc3);
if (n2=n3) and (n1<n3) then write('Disciplinile la care sunt cele mai multe note
insuficiente sunt: ',evl[i].dendisc2,' si ',evl[i].dendisc3);
if (n1=n2) and (n2=n3) and (n1>0) then writeln('Note insuficiente sunt la toate
disciplinele');
if (n1=0) and (n2=0) and (n3=0) then writeln('La examene nu s-au inregistrat
note insuficiente');
end;
{+++++++++++++++++++++++++INSUFICIENT+++++++++++++++++++++}
procedure insuf(var ev:lista);
var i,t:integer;y:char;
begin
y:='5';
10
for i:=1 to o do
if (ev[i].nota1<y) or (ev[i].nota2<y) or (ev[i].nota3<y) then
writeln(rest,ev[i].code,' ',ev[i].nume,' ',ev[i].prenume,' ',
ev[i].dendisc1,' ',ev[i].nota1,' ',
ev[i].dendisc2,' ',ev[i].nota2,' ',ev[i].dendisc3,' ',ev[i].nota3);
for i:=1 to o do
if (ev[i].nota1>=y) and (ev[i].nota2>=y) and (ev[i].nota3>=y) then t:=t+1;
if t=o then writeln('Nu sunt elevi cu note insuficiente') else
writeln('In discul D:/practica/a a fost creat fisierul Rest!');
end;
{+++++++++++++++++++++++++++++ARANJARE++++++++++++++++++++}
procedure aranjare(var elv:lista);
var j,i,ac: integer;
an,ap,ad1,ad2,ad3:string;
an1,an2,an3:char;
begin
for j:=1 to o do
for i:=1 to o-1 do
if (elv[i].nume>elv[i+1].nume) then begin
ac:=elv[i].code; elv[i].code:=elv[i+1].code; elv[i+1].code:=ac;
an:=elv[i].nume; elv[i].nume:=elv[i+1].nume; elv[i+1].nume:=an;
ap:=elv[i].prenume; elv[i].prenume:=elv[i+1].prenume; elv[i+1].prenume:=ap;
ad1:=elv[i].dendisc1; elv[i].dendisc1:=elv[i+1].dendisc1;elv[i+1].dendisc1:=ad1;
ad2:=elv[i].dendisc2; elv[i].dendisc2:=elv[i+1].dendisc2;elv[i+1].dendisc2:=ad2;
ad3:=elv[i].dendisc3; elv[i].dendisc3:=elv[i+1].dendisc3;elv[i+1].dendisc3:=ad3;
an1:=elv[i].nota1; elv[i].nota1:=elv[i+1].nota1; elv[i+1].nota1:=an1;
an2:=elv[i].nota2; elv[i].nota2:=elv[i+1].nota2; elv[i+1].nota2:=an2;
an3:=elv[i].nota3; elv[i].nota3:=elv[i+1].nota3; elv[i+1].nota3:=an3;end
else if (elv[i].nume=elv[i+1].nume) and (elv[i].prenume>elv[i+1].prenume) then
begin
ac:=elv[i].code; elv[i].code:=elv[i+1].code; elv[i+1].code:=ac;
an:=elv[i].nume; elv[i].nume:=elv[i+1].nume; elv[i+1].nume:=an;
ap:=elv[i].prenume; elv[i].prenume:=elv[i+1].prenume; elv[i+1].prenume:=ap;
ad1:=elv[i].dendisc1; elv[i].dendisc1:=elv[i+1].dendisc1;elv[i+1].dendisc1:=ad1;
ad2:=elv[i].dendisc2; elv[i].dendisc2:=elv[i+1].dendisc2;elv[i+1].dendisc2:=ad2;
ad3:=elv[i].dendisc3; elv[i].dendisc3:=elv[i+1].dendisc3;elv[i+1].dendisc3:=ad3;
an1:=elv[i].nota1; elv[i].nota1:=elv[i+1].nota1; elv[i+1].nota1:=an1;
an2:=elv[i].nota2; elv[i].nota2:=elv[i+1].nota2; elv[i+1].nota2:=an2;
an3:=elv[i].nota3; elv[i].nota3:=elv[i+1].nota3; elv[i+1].nota3:=an3;end;
for i:=1 to o do
writeln(elv[i].code,' ',elv[i].nume,' ',elv[i].prenume,' ',
elv[i].dendisc1,' ',elv[i].nota1,' ',
elv[i].dendisc2,' ',elv[i].nota2,' ',elv[i].dendisc3,' ',elv[i].nota3);
end;
{++++++++++++++++++++++++EXCLUDE+++++++++++++++++++++++++++}
procedure exclude(var elev:lista);
var i,b :integer;
begin
write('Introduceti codul elevului care doriti sa-l excludeti: ');
readln(exc);
for i:=1 to o do
if elev[i].code <> exc then
writeln(elevi,elev[i].code,' ',elev[i].nume,' ',elev[i].prenume,' ',
elev[i].dendisc1,' ',elev[i].nota1,' ',
elev[i].dendisc2,' ',elev[i].nota2,' ',elev[i].dendisc3,' ',elev[i].nota3);
for i:=1 to o do
if elev[i].code = exc then begin
writeln('Elevul ',elev[i].nume,' ',elev[i].prenume,' a fost exclus din lista cu
succes!');b:=i;end;
for i:=b to o-1 do begin
elev[i].code:=elev[i+1].code;elev[i].nume:=elev[i+1].nume;elev[i].prenume:=elev[
i+1].prenume;
elev[i].dendisc1:=elev[i+1].dendisc1;elev[i].dendisc2:=elev[i+1].dendisc2;elev[i
].dendisc3:=elev[i+1].dendisc3;
11
elev[i].nota1:=elev[i+1].nota1;elev[i].dendisc2:=elev[i+1].dendisc2;elev[i].nota
3:=elev[i+1].nota3; end;
o:=o-1;
end;
{+++++++++++++++++++++++INSCRIERE(progr auxiliar)++++++++++}
procedure inscriere(h:integer; var elev2:lista);
var i:integer;
begin
for i:=1 to h do begin
write(elevi,elev2[i].code,' ');
write(elevi,elev2[i].nume,' ');
write(elevi,elev2[i].prenume,' ');
write(elevi,elev2[i].dendisc1,' ',elev2[i].nota1,' ');
write(elevi,elev2[i].dendisc2,' ',elev2[i].nota2,' ');
writeln(elevi,elev2[i].dendisc3,' ',elev2[i].nota3,' ');
end;end;
{+++++++++++++++++++++++++++CITIRE+++++++++++++++++++++++++}
procedure citire1(j:integer; var elev:lista );
var i:integer;
c:char;
begin
for i:=j to o do
with elev[i] do begin
nume:='';prenume:='';dendisc1:='';dendisc2:='';dendisc3:='';end;
i:=1;
while not eof(elevi) do begin
read(elevi,elev[i].code);
read(elevi,c);
read(elevi,elev[i].nota1,c);
read(elevi,elev[i].nota2,c);
procedure meniu;
var k:byte;
label 1;
begin
1: clrscr;
Writeln( Examene);
writeln('|----------------------------------------------------------------------
-------|');
writeln('|Introduceti numarul instructiunii dorite:
|');
Writeln('|1: Inscrie un nou elev.
|');
writeln('|2: Exclude un elev in baza codului.
|');
writeln('|3: Afisarea la ecran a listei elevilor aranjati in ordine alfabetica
|');
writeln('|4: Crearea fisierului Rest in care vor fi afisati elevii cu note
insuficiente|');
writeln('|5: Afiseaza la ecran disciplina(ele) la care sunt note insuficiente.
|');
writeln('|6: Afiarea notei medii obtinuta de toti elevii la toate examenele.
|');
writeln('|----------------------------------------------------------------------
-------|');
o:=0;
reset (elevi);
while not eof(elevi) do
begin
readln(elevi);
end;close(elevi);
k:=ord(readkey)-48;
case k of
1:begin reset(elevi);citire_nou(elev1);close (elevi);
13
append(elevi);inscriere (n,elev1);close(elevi);
{reset(elevi);citire1(o,init);close(elevi)};end;
2:begin rewrite(elevi);exclude(init);close(elevi);end;
3:begin aranjare(init);end;
4:begin assign(rest,'Rest.txt');rewrite(rest); insuf(init);close(rest);end;
5:begin disciplina(init); end;
6:begin Writeln('Media este: ',media(init):2:2);end;
else halt(0);end; readkey; goto 1; end;
begin
clrscr;
assign(elevi, 'elevi.txt');
reset(elevi);
citire1(1,init);
close(elevi);
meniu;
end.
Meniul principal propune rezolvarea a oricrui din cei 6 itemi la solicitarea utilizatorului i a
nchiderii meniului.
Dac se va introduce un caracter nevalid programul ne va anuna, i ne va da o eroare, dupa
care se va inchide meniul.
Pentru iesire din program vom accesa orice tasta .
Subprogramul 1
14
n primul subprogram cerina principala este de a nregistra un nou elev. Datele de intrare sunt
indroduse de la tastatur i sunt alese la dorina utilizatorului
Subprogramul 2
La alegerea opiunii 2 , se va apela subprogramul nr.2.Aceasta presupune excluderea unui elev dupa
codul sau personal.
Subprogramul 3
Subprogramul 4
La alegerea opiunii 4, se va apela subprogramul nr.4 .Aceasta presupune crearea fiierului textual
Rest.txt in care vor fi afisati elevii cu note insuficiente;
15
Subprogramul 5
La alegerea opiunii 5 se va apela subprogramul nr.5, aceasta va afia pe ecran obiectele la care au
fost inregistrate cele mai multe note insuficiente.
Subprogramul 6
La alegerea opiunii 6, se va apela subprogramul nr.6 .Aceasta presupune afisarea pe ecran a mediei
obtinute de toti elevii la toate examenele.
16
Fig.1
Item 2
2)Inserai pentru tabel titlu i denumirea cmpurilor, redenumii foaia n Elevi.
Fig.2
Item 3
3) Formatai tabelul: stabilii chenarul, proprietile fontului etc.
Fig.3
Item 4
4) Valorile pentru cmpurile Denumirea disciplinei i Nota de examen vor fi selectate dintr-o lista
de valori predefinite.
Fig.4
Item 5
17
5) Inserai n celule pentru fiecare copil imaginea respectiv. Inserai pentru titlu un comentariu, n
care va fi afiat imaginea gradiniei.
Fig.5
Fig.6
Item 6
6) Calculai: nota medie obinut de fiecare elev la toate examenele; numrul de elevi care au media
la examene mai mare ca 8, respectiv mai mic de 8; numarul de restanieri. Rezultatele calculelor
vor fi afiate ntr-o foaie noua cu numele Statistica.
18
Fig.7
Fig.8
Item 7
Fig.9
Item 8:
8) Afiai notele la examen elevului, numele cruia este selectat dintr-o list ascuns (ComboBox).
19
Fig.11
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 .
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 .
20
Bibliografie
21