Documente Academic
Documente Profesional
Documente Cultură
Danika Raportui
Danika Raportui
RAPORT
PE PRACTICA DE INIIERE N SPECIALITATE
LA SPECIALITATEA
Informatic
AL ELEVEI gr. I-1514
Chetreanu Daniela
LOCUL PRACTICII:
CONDUCTORUL:
CHIINU
Frunza Olga
C.E.I.T.I
Nota:
CHIINAU 2016
2)Enuntul Problemei
X.Impozitare.Informatiile despre N angajati la o fabrica si remunerarea lor sunt inregistrate in
fisierul textual Angajati.txt,fiecare linie a carui corespunde unui singur angajat si reciproc.O linie
din fisier contine urmatoarele date separate prin spatiu:CodA(Codul
angajatului);Nume_Pren_A(Numele_prenumele angajatului);
Data_nasterii:ziua(1..31),Luna(1..12),Anul;Ncop(Numarul de copii minori);Nrsc(Numarul de
scutiri pentru maturi),PlataPeZi,ZileLucr(Numarul de zile lucrate:1..31).
Algoritmul de calcul al salariului se prezinta astfel:
SalarCalc(Salariul calculate)=PlataPeZi*ZileLucrate;
S0,07, S <1350 ;
(
13500,07+ S1350 )0,10 , S [ 1350,1750 ) ;
13500,07+ 4000,10+ ( S1750 )0,20, S>1750
3)Schema bloc
4)Listing-ul Programului:
Program practica;
uses crt;
type impozit=record
coda,ziua,luna,anul,ncop,nrsc,platapezi,zilelucr:integer;
nume_pren_a:string;
end;
var a:array[1..50] of impozit;
b:array[1..100] of real;
f,g:text ;
des,time,n:integer;
procedure transition_on;
begin
Writeln;
Delay(20); Write('L');
Delay(50); Write('o');
Delay(50); Write('a');
Delay(50); Write('d');
Delay(50); Write('i');
Delay(50); Write('n');
Delay(50); Write('g');
Delay(50); Write('.');
Delay(50); Write('.');
Delay(50); Write('.');
Delay(100);
clrscr;
end;
procedure transition_off;
begin
writeln;
delay(250);
writeln('> Succes!');
delay(250);
writeln('> Apasati `enter` p-u a trece in meniul principal');
write('>> ');
readln;
transition_on;
end;
function date_to_day(z1, l1, a1: integer): integer;
begin
date_to_day := abs(a1*365+l1*31+z1);
end;
function decupare(s:string;nsp:byte):string;
var i,p:byte;
begin
for i:=1 to nsp do
delete(s,1,pos(' ',s));
p:=pos(' ',s);
if p>0 then
decupare:=copy(s,1,p-1) else decupare:=s;
end;
Procedure citire;
var i,code:integer;
s:string;
begin
assign(f,'Angajati.txt');
reset(f);
i:=0;
while not eof(f) do
begin
inc(i);
readln(f,s);
val(decupare(s,0),a[i].coda,code);
a[i].nume_pren_a:=decupare(s,1);
val(decupare(s,2),a[i].ziua,code);
val(decupare(s,3),a[i].luna,code);
val(decupare(s,4),a[i].anul,code);
val(decupare(s,5),a[i].ncop,code);
val(decupare(s,6),a[i].nrsc,code);
val(decupare(s,7),a[i].platapezi,code);
val(decupare(s,8),a[i].zilelucr,code);
end;
close(f);
end;
procedure inregistrare;
var coda,ziua,luna,anul,ncop,nrsc,platapezi,zilelucr:integer;
nume_pren_a:string;
begin
clrscr;
transition_on;
writeln('+================================================+');
writeln('|
Adauga un angajat
|');
writeln('+================================================+');
write('Introduceti Codul angajatului format din 4 cifre [ex.1234] : ');
readln(coda);
write('Introduceti numele prenumele angajatului: '); readln(nume_pren_a);
write('Introduceti ziua nasterii: '); readln(ziua);
write('Introduceti luna nasterii: '); readln(luna);
write('Introduceti anul: '); readln(anul);
write('Introduceti numarul de copii minori:');readln(ncop);
write('Introduceti numarul de scutiri;');readln(nrsc);
write('Introduceti plata pe zi:');readln(platapezi);
write('Introduceti numarul de zile lucratoare:');readln(zilelucr);
inc(des);
time:=des;
assign(f,'Angajati.txt');
append(f);
writeln(f,coda,' ',nume_pren_a,' ',ziua,' ',luna,' ',anul,' ',ncop,' ',nrsc,'
',platapezi,' ',zilelucr,' ');
close(f);
a[time].coda:=coda;
a[time].nume_pren_a:=nume_pren_a;
a[time].ziua:=ziua;
a[time].luna:=luna;
a[time].anul:=anul;
a[time].ncop:=ncop;
a[time].nrsc:=nrsc;
a[time].platapezi:=platapezi;
a[time].zilelucr:=zilelucr;
writeln; writeln(' Datele au fost adaugate cu succes!');
writeln; writeln; writeln; writeln; writeln; writeln;
writeln; writeln; writeln; writeln; writeln; writeln;
writeln; writeln; writeln; writeln; writeln;
write('Tastati <ENTER> pentru a reveni la meniu!');
readln;
end;
procedure excludere;
var s,e:string;
begin
clrscr;
transition_on;
writeln('+================================================+');
writeln('|
Exclude angajatul concediat
|');
writeln('+================================================+');
assign(f,'Angajati.txt');
reset(f);
assign(g,'Angaj.txt');
rewrite(g);
writeln;
write('Dati numele care trebuie concediat: ');
readln(e);
writeln;
writeln;
writeln;
writeln;
writeln(' Linia ce corespunde numelui ',e,' a fost exclusa cu succes!');
writeln;
while not eof(f) do
begin
readln(f,s);
if decupare(s,1)<>e then
writeln(g,s);
end;
close(f);
close(g);
erase(f);
rename(g,'Angajati.txt');
writeln;writeln;writeln;writeln;writeln;writeln;writeln;writeln;
writeln;writeln;writeln;writeln;writeln;writeln;writeln;writeln;
write('Tastati <ENTER> pentru a reveni la meniu!');
readln;
end;
procedure sortare;
var i,j,code:integer;
z,z1,l1,an1,tot:integer;
s:string;
p:impozit;
begin
clrscr;
transition_on;
writeln('+================================================+');
writeln('|
Angajatii mai tineri de 30 de anui
|');
writeln('+================================================+');
z:=2016*365*24+6*30*24+3*24;
assign(f,'Angajati.txt');
reset(f);
while not eof(f) do
begin
readln(f,s);
z1:=StrToInt(decupare(s,2));
l1:=StrToInt(decupare(s,3));
an1:=StrToInt(decupare(s,4));
tot:=(an1*365*24+((12-l1)*30*24)+((30-z1)*24))+30*365*24;
if tot>=z then
begin
inc(i);
val(decupare(s,0),a[i].coda,code);
a[i].nume_pren_a:=decupare(s,1);
val(decupare(s,2),a[i].ziua,code);
val(decupare(s,3),a[i].luna,code);
val(decupare(s,4),a[i].anul,code);
val(decupare(s,5),a[i].ncop,code);
val(decupare(s,6),a[i].nrsc,code);
val(decupare(s,7),a[i].platapezi,code);
val(decupare(s,8),a[i].zilelucr,code);
end;
end;
close(f);
n:=i;
for i:=1 to n-1 do
for j:=1 to n-i do
if a[j].nume_pren_a>a[j+1].nume_pren_a then
begin
p:=a[j];
a[j]:=a[j+1];
a[j+1]:=p;
end;
for i:=1 to n do
writeln(a[i].coda,'
',a[i].nume_pren_a,'
',a[i].ziua,'
',a[i].luna,'
',a[i].anul,' ',a[i].ncop,' ',a[i].nrsc,' ',a[i].platapezi,' ',a[i].zilelucr);
writeln;writeln;writeln;writeln;writeln;writeln;writeln;writeln;writeln;
transition_off;
write('Tastati <ENTER> pentru a reveni la meniu!');
readln;
end;
procedure copiere;
var s:string;
i,code:integer;
salarcalc,fp,am,cs,d,ss,impozite:real;
begin
clrscr;
transition_on;
assign(f,'Angajati.txt');
reset(f);
assign(g,'Plata.txt');
rewrite(g);
i:=0;
while not eof(f) do
begin
readln(f,s);
inc(i);
val(decupare(s,0),a[i].coda,code);
a[i].nume_pren_a:=decupare(s,1);
val(decupare(s,2),a[i].ziua,code);
val(decupare(s,3),a[i].luna,code);
val(decupare(s,4),a[i].anul,code);
val(decupare(s,5),a[i].ncop,code);
val(decupare(s,6),a[i].nrsc,code);
val(decupare(s,7),a[i].platapezi,code);
val(decupare(s,8),a[i].zilelucr,code);
end;
n:=i;
for i:=1 to n do
begin
salarcalc:=a[i].platapezi*a[i].zilelucr;
if salarcalc<6045 then
fp:=salarcalc*0.04
else
fp:=241.80;
am:=salarcalc*0.025;
cs:=salarcalc*0.01;
d:=fp+am;
ss:=salarcalc-d-450*a[i].nrsc-120*a[i].ncop;
if ss<1350 then
impozite:=ss*0.07
else
if (ss<1750) and (ss>=1350) then
impozite:=1350*0.07+(ss-1350)*0.1
else
impozite:=1350*0.08+400*0.1+(ss-1750)*0.2;
b[i]:=salarcalc-impozite-d-cs;
end;
for i:=1 to n do
writeln(g,a[i].nume_pren_a,' ',b[i]:3:2);
writeln;
writeln;
close(f);
close(g);
writeln;writeln;writeln;writeln;writeln;writeln;
writeln(' Fisierul a fost creat cu succes !');
writeln;
writeln;writeln;writeln;writeln;
writeln;writeln;writeln;
transition_off;
write('Tastati <ENTER> pentru a reveni la meniu!');
readln;
end;
procedure salarmax;
var s:string;
i,code:integer;
salarcalc,fp,am,cs,d,ss,impozite:real;
max:real;
begin
clrscr;
transition_on;
writeln('+================================================+');
writeln('|Atributele angajatului cu salariul maxim
|');
writeln('+================================================+');
assign(f,'Angajati.txt');
reset(f);
i:=0;
while not eof(f) do
begin
readln(f,s);
inc(i);
val(decupare(s,0),a[i].coda,code);
a[i].nume_pren_a:=decupare(s,1);
val(decupare(s,2),a[i].ziua,code);
val(decupare(s,3),a[i].luna,code);
val(decupare(s,4),a[i].anul,code);
val(decupare(s,5),a[i].ncop,code);
val(decupare(s,6),a[i].nrsc,code);
val(decupare(s,7),a[i].platapezi,code);
val(decupare(s,8),a[i].zilelucr,code);
end;
n:=i;
for i:=1 to n do
begin
salarcalc:=a[i].platapezi*a[i].zilelucr;
if salarcalc<6045 then
fp:=salarcalc*0.04
else
fp:=241.80;
am:=salarcalc*0.025;
cs:=salarcalc*0.01;
d:=fp+am;
ss:=salarcalc-d-450*a[i].nrsc-120*a[i].ncop;
if ss<1350 then
impozite:=ss*0.07
else
if (ss<1750) and (ss>=1350) then
impozite:=1350*0.07+(ss-1350)*0.1
else
impozite:=1350*0.08+400*0.1+(ss-1750)*0.2;
b[i]:=salarcalc-impozite-d-cs;
end;
max:=b[1];
for i:=1 to n do
if b[i]>max then
max:=b[i];
for i:=1 to n do
if b[i]=max then
writeln(a[i].coda,'
',a[i].nume_pren_a,'
',a[i].ziua,'
',a[i].luna,'
',a[i].anul,' ',a[i].ncop,' ',a[i].nrsc,' ',a[i].platapezi,' ',a[i].zilelucr,'
',b[i]);
writeln;
writeln;
close(f);
writeln;
writeln;writeln;writeln;writeln;writeln;writeln;writeln;writeln;
writeln;writeln;writeln;writeln;
writeln;writeln;writeln;
transition_off;
write('Tastati <ENTER> pentru a reveni la meniu!');
readln;
end;
procedure salarmed;
var s:string;
i,code,nr:integer;
salarcalc,fp,am,cs,d,ss,impozite:real;
med,suma:real;
begin
clrscr;
assign(f,'Angajati.txt');
reset(f);
i:=0;
while not eof(f) do
begin
readln(f,s);
inc(i);
val(decupare(s,0),a[i].coda,code);
a[i].nume_pren_a:=decupare(s,1);
val(decupare(s,2),a[i].ziua,code);
val(decupare(s,3),a[i].luna,code);
val(decupare(s,4),a[i].anul,code);
val(decupare(s,5),a[i].ncop,code);
val(decupare(s,6),a[i].nrsc,code);
val(decupare(s,7),a[i].platapezi,code);
val(decupare(s,8),a[i].zilelucr,code);
end;
n:=i;
for i:=1 to n do
begin
salarcalc:=a[i].platapezi*a[i].zilelucr;
if salarcalc<6045 then
fp:=salarcalc*0.04
else
fp:=241.80;
am:=salarcalc*0.025;
cs:=salarcalc*0.01;
d:=fp+am;
ss:=salarcalc-d-450*a[i].nrsc-120*a[i].ncop;
if ss<1350 then
impozite:=ss*0.07
else
if (ss<1750) and (ss>=1350) then
impozite:=1350*0.07+(ss-1350)*0.1
else
impozite:=1350*0.08+400*0.1+(ss-1750)*0.2;
b[i]:=salarcalc-impozite-d-cs;
end;
for i:=1 to n do
begin
suma:=suma+b[i];
inc(nr);
end;
transition_on;
writeln('+================================================+');
writeln('|
Salariul mediu
|');
writeln('+================================================+');
writeln('Salariul mediu=',suma/nr,'lei');
writeln;
writeln;
close(f);
writeln;
writeln;writeln;writeln;writeln;writeln;writeln;writeln;writeln;
writeln;writeln;writeln;writeln;
transition_off;
write('Tastati <ENTER> pentru a reveni la meniu!');
readln;
end;
procedure afisare;
var s:string;
begin
clrscr;
assign(f,'Angajati.txt');
reset(f);
writeln('+================================================+');
writeln('|
Continutul fisierului angajati.txt
|');
writeln('+================================================+');
writeln('Continutul fisierului Angajati.txt');
writeln;
while not eof(f) do
begin
readln(f,s);
writeln(s);
end;
close(f);
writeln;
transition_off;
write('Tastati <ENTER> pentru a reveni la meniu!');
readln;
end;
procedure meniu;
var mid:char;
begin
clrscr;
textcolor(14);
writeln(' ');
textcolor(0);
transition_on;
writeln('=======================================================================
======');
writeln('+**********************************Meniu*******************************
*****+');
writeln('*======================================================================
=====*');
writeln('*||*
[1]
Inregistreaza
un
nou
angajat
*||*');
writeln('*||*
[2]
Exclude
linia
ce
corespunde
angajatului
concediat
*||*');
writeln('*||*
[3]
Angajatii
cu
virsta
mai
mica
de
30
de
ani
*||*');
writeln('*||*
[4]
Creaza
fisierul
textual
Plata.txt
*||*');
writeln('*||* [5]
Afiseaza atributele angajatilor cu cel mai mare salariu
*||*');
writeln('*||*
[6]
Salariul
mediu
al
angajatilor
*||*');
writeln('*||*
*||*');
writeln('*||*
[7]
Iesire
din
program
*||*');
writeln('*======================================================================
=====*');
writeln('***********************************************************************
******');
writeln('+======================================================================
=====+');
textcolor(red);
textcolor(black);
writeln;
writeln(' Submeniu');
writeln(' [a] Afisare fisier Angajati.txt');
writeln;
writeln;
write(' Alegeti o optiune: ');
readln(mid);
case mid of
'1':inregistrare;
'2':excludere;
'3':sortare;
'4':copiere;
'5':salarmax;
'6':salarmed;
'7':halt;
'a':afisare;
else
writeln('+================================================+');
writeln('| Multumim pentru utilizarea softului dat
|');
writeln('| Creat de Chetreanu Daniela,gr.I-1514
|');
writeln('+================================================+')
end;
end;
begin
clrscr;
textbackground(lightgreen);
textcolor(white);
citire;
while 1=1 do meniu;
readln;
end.
5.2)La alegerea optiuniii 2 va aparea urmatoarea fereastra care permite stergerea angajatului cu
numele si prenumele introduse de la tastatura
5.3)La alegerea optiunii 3 va aparea urmatoarea fereastra ce va contine toate datele despre angajatii
mai tineri de 30 de ani in ordine alfabetica dupa nume si prenume.
5.4)La alegerea optiunii 4 va aparea urmatoarea fereastra care va crea fisierul Plata.txt,unde se vor
inscribe datele despre angajati.
5.5)La alegerea optiunii 5 va aparea urmatoarea fereastra care va afisa angajatul cu salariul maxim.
5.6)La alegerea optiunii 6 va aparea urmatoarea fereastra care va afisa salariul mediu al angajatilor.
6.2)Statistica
6.3)Reprezentarea grafica.
Concluzie
Efectund acesta practica pot sa deduc foarte multe lucruri si concluzii,dar cel mai important
consider ca dupa finisarea ei apar deja unele deprinderi din domeniul,si aceasta mi-a dat
posibilitatea de a intelege cu adevarat importanta functiei alese.
Cu ajutorul acestei practici am putut nelege mai bine cum lucreaz programul cu fiiere. Am
neles cum e mai bine s fac programul ca s fie mai eficient i ct mai mic n volum. La fel am
neles c trebuie s te atrni destul de serios fa de aceea ce faci (de program), pentru al face mai
plcut la folosire i mai uor de neles. Mi-au aprut unele idei pe viitor la care m gndeam nainte
dar nu tiam cum s le fac n program.
Practica de initiere reprezinta o parte componenta a procesului educativ care este o
perioada importanta petru noi, deoarece anume in timpul petrecerii practicii ne aprofundam
cunostintele accumulate timp de un an, de asemenea ne permite sa aplicam in practica si
cunostintele teoretice la obiectul Programarii Calculatorului.
Studentul nceptor se familiarizeaz cu programarea, de regul, n baza elaborrii i transcrierii
ntr-un limbaj de programare a algoritmilor de rezolvare a unor probleme concrete simple. ns,
rezolvarea problemelor reale presupune elaborarea unor complexe programate mari, care include o
gam ntreag de probleme:proiectarea sistemului, elaborarea prilor componente ale algoritmului,
reuniunea diverselor fragmente ale programului ntr-un produs final, documentare etc.
n cadrul leciilor este posibil examinarea doar a principiilor generale ale metodicii de elaborare a
programelor i anumitor aspecte ale rezolvrii problemelor. La rndul su, practica de initiere imit
ntregul process de elaborare a unui complex programat mare, permite studentului s evolueze n
rolul de elaborator i organizator al proiectului.
Practica de instruire constituie o prim lucrare de sine stttoare a studenilor i dup rezultatele
realizrii ei se pot face concluzii cu privire la pregtirea studentului pentru a activa n domeniul
programrii, de a evidenia studenii cei mai capabili pentru instruirea ulterioar n calitate de
specialist n programare.