Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice



Acasa » referate » informatica
Proiect Atestat informatica - Limbajul Pascal

Proiect Atestat informatica - Limbajul Pascal



Liceul Jean Bart Sulina

Proiect: Situatie olimpici

Atestat informatica

CUPRINS


  1. Limbajul Pascal
  2. Situatie olimpici
  3. Explicatia programului
  4. Codul programului
  5. Bibliografie

2. Situatie olimpici

Ne propunem sa scriem un program ce va tine evidenta notelor luate de olimpici. Programul va contine campurile „Nume si prenume”, „Materie”, „Medie” si „Admis”. La campul „Admis” vor fi admisi primii „n” elevi de la fiecare materie, „n” fiind dat de utilizator. In acest camp se va completa automat cu „admis” sau „respins”. Se va tine cont de conditia ca la o nota sub 8, elevul nu se considera admis.

3. Exlicatia programului

Programul a fost scris in limbajul de programare Pascal si a fost compilat de Free Pascal compiler. Acesta contine sase optiuni pentru gestionarea bazei de date si inca o optiune pentru iesirea din program.

Prima optiune ce raspunde la apasarea tastei 1, se ocupa cu adaugarea datelor intr-un fisier. Va fi cerut numele fisierului si in caz ca se constata neexistenta sa, veti avea la alegere intre crearea fisierului si reintroducerea numelui fisierului. Va urma apoi introducerea datelor in fisier.

Dupa efectuarea fiecarei operatii veti fi intrebat daca doriti una noua. Daca doriti atunci apasati tasta ENTER sau oricare caracter. In caz contrar, introduceti combinatia „nu”.

A doua optiune afiseaza datele din memoria interna. Inainte de a alege aceasta optiune efectuati o operatie de adaugare in fisier sau de extragere din fisier.

Optiunea 3 extrage datele dintr-un fisier cu numele dat de utilizator.

A patra optiune afla primii n elevi de la fiecare materie.

A cincea optiune salveaza datele prelucrate anterior de program in fisierul de unde provin.

Optiunea 6 aranjeaza in ordine alfabetica numele elevilor.

Optiunea 0 opreste executia programului. Apasati apoi tasta ENTER pentru a iesi din program.


4. Codul programului

program situatie_olimpici;

type OLIMPICI=record

     nume:string;

     materie:string;

     medie:real;

     admis:string;

     end;

     vector=array[1..100] of OLIMPICI;

var v:vector;

    i,n,optiune:integer;      alege,nume_fisier:string;

    b_alege:boolean;

procedure adaugare_text;

var f:text;  nr,loc:integer;     str:string;   nr2:real;

begin

     writeln;

     if length(nume_fisier)=0 then

     begin

          write('Dati numele fisierului: ');

          readln(nume_fisier);

     end

     else

     begin

          write('Doriti sa adaugati in alt fisier?('da' daca doriti) ');

          readln(alege);

          if alege='da' then

          begin

               write('Dati numele fisierului: ');

               readln(nume_fisier);

          end;

     end;

     assign(f,nume_fisier);

       reset(f); 

     repeat

           if ioresult<>0 then

           begin

                writeln('Fisierul ',nume_fisier,' nu exista!');

                writeln('1: Creare fisier');

                writeln('2: Reintroducere nume fisier');

                writeln('Dati optiunea: ');

                readln(optiune);

                case optiune of

                     1: begin

                             rewrite(f);

                             reset(f);

                        end;

                     2: begin

                             write('Dati numele fisierului: ');

                             readln(nume_fisier);

                             assign(f,nume_fisier);

                               reset(f) 

                        end

                else

                    writeln('Optiune incorecta!');

                end;

           end;

     until ioresult=0;

     write('Dati numarul de elevi ce doriti sa adaugati: ');

     readln(nr);

     append(f);

     for i:=1 to nr do

         with v[i] do

         begin

              writeln;

              write('nume si prenume: ');  readln(nume);

              writeln(f,nume);

              write('materia: ');    readln(materie);

              writeln(f,materie);

              write('medie: ');      readln(medie);

              writeln(f,medie:2:2);

              admis:='necunoscut';

              writeln(f,admis);

         end;

     reset(f);



     i:=0;

     while not eof(f) do

     begin

          inc(i);

          with v[i] do

          begin

               readln(f,nume);

               readln(f,materie);

               readln(f,str);    val(str,nr2,loc);  medie:=nr2;

               readln(f,admis);

          end;

     end;

     n:=i;

     close(f);

     writeln;

     writeln('Datele au fost adaugate in fisierul ',nume_fisier);

end;

procedure afisare;

begin

     writeln;

     writeln(' Nr |   Nume si prenume   |     Materie     |  Medie  |   Admis     ');

     writeln('--------------------------------------------------------------------');

     for i:=1 to n do

         with v[i] do

              writeln(i:3,' |',nume:20,' |',materie:16,' |',medie:8:2,' |',admis:13);

end;

procedure extragere_text;

var f:text;   loc:integer;  str:string;  nr:real;

begin

     if length(nume_fisier)=0 then

     begin

          write('Dati numele fisierului: ');

          readln(nume_fisier);

     end

     else

     begin

          write('Doriti sa extrageti din alt fisier?('da' daca doriti) ');

          readln(alege);

          if alege='da' then

          begin

               write('Dati numele fisierului: ');

               readln(nume_fisier);

          end;

     end;

     assign(f,nume_fisier);

       reset(f); 

     repeat

           if ioresult<>0 then

           begin

                write('Fisierul nu exista; reintroduceti: ');

                readln(nume_fisier);

                assign(f,nume_fisier);

                  reset(f); 

           end;

     until ioresult=0;

     i:=0;

     while not eof(f) do

     begin

          inc(i);

          with v[i] do

          begin

               readln(f,nume);

               readln(f,materie);

               readln(f,str);  val(str,nr,loc);   medie:=nr;

               readln(f,admis);

          end;

     end;

     n:=i;

     close(f);

     afisare;

     writeln;

     writeln('Datele au extrase din fisierul ',nume_fisier);

end;

procedure suprascriere;

var f:text;

begin

     writeln;

     if length(nume_fisier)=0 then

     begin

          write('Nu este memorat numele fisierului; reintroduceti numele: ');

          readln(nume_fisier);

          assign(f,nume_fisier);

          rewrite(f);

     end;

     assign(f,nume_fisier);

     rewrite(f);

     for i:=1 to n do

         with v[i] do

         begin

              writeln(f,nume);

              writeln(f,materie);

              writeln(f,medie:2:2);

              writeln(f,admis);

         end;

     close(f);

     writeln;

     writeln('Datele au fost suprascrise!');

end;

procedure ordonare;

var aux:OLIMPICI;    j:integer;

begin

     writeln;

     for i:=1 to n do

         for j:=1 to n-1 do

             if v[j].nume > v[j+1].nume then

             begin

                  aux:=v[j];

                  v[j]:=v[j+1];

                  v[j+1]:=aux;

             end;

     afisare;

end;



procedure aflare_olimpici;

var nr,j,k,m:integer;   aux:OLIMPICI;

    b:array[1..100] of integer;

begin

     writeln;

     write('Dati nr maxim de elevi admisi: ');

     readln(nr);

     for i:=1 to n do

         for j:=1 to n-1 do

             if v[j].materie > v[j+1].materie then

             begin

                aux:= v[j];

                v[j]:=v[j+1];

                v[j+1]:=aux;

             end;

     i:=1;    j:=1; b[j]:=0;

     while i<=n do

     begin

          if v[i].materie=v[i+1].materie then

             inc(i)

          else

          begin

               inc(j);

               b[j]:=i;

               inc(i);

          end;

     end;

     m:=j;

     for j:=1 to m-1 do

     begin

         for i:=b[j]+1 to b[j+1] do

             for k:=b[j]+1 to b[j+1]-1 do

                 if v[k].medie < v[k+1].medie then

                 begin

                    aux:= v[k];

                    v[k]:=v[k+1];

                    v[k+1]:=aux;

                 end;

         if nr < (b[j+1]-b[j]) then

         begin

              for i:=(b[j]+1) to b[j]+nr do

              with v[i] do

              begin

                  if medie >8 then

                     admis:='admis'

                  else

                      admis:='respins';

              end;

              for i:=b[j]+nr+1 to b[j+1] do

                  v[i].admis:='respins';

         end

         else

         begin

             for i:=b[j] to b[j+1] do

                 if v[i].medie >= 8 then

                    v[i].admis:='admis'

                 else

                     v[i].admis:='respins';

         end;

         for i:=b[j]+1 to b[j+1] do

             for k:=b[j]+1 to b[j+1]-1 do

                 if v[k].nume > v[k+1].nume then

                 begin

                      aux:=v[k];

                      v[k]:=v[k+1];

                      v[k+1]:=aux;

                 end;

     end;

     afisare;

end;

begin

     writeln('SITUATIE OLIMPICI':45);

     repeat

           b_alege:=false;

           writeln;

           writeln('1: Adaugare date intr-un fisier sau creare fisier si introducere date');

           writeln('2: Afisare date');

           writeln('3: Extragere date dintr-un fisier');

           writeln('4: Evidentierea primilor 'n' olimpici admisi la etapa urmatoare');

           writeln('5: Salvarea datelor din memoria programului peste datele din fisierul deschis');

           writeln('6: Aranjare in ordine alfabetica');

           writeln('0: Iesire din program');

           writeln;

           write('Dati optiunea: ');

           readln(optiune);

           case optiune of

                1: adaugare_text;

                2: afisare;

                3: extragere_text;

                4: aflare_olimpici;

                5: suprascriere;

                6: ordonare;

                0: break

           else

               writeln('Optiune incorecta!');

           end;

           writeln;

           write('Doriti sa efectuati o alta operatie?('nu' daca nu doriti) ');

           readln(alege);

           if alege='nu' then

              b_alege:=true;

     until b_alege;

     writeln;

     writeln('Ati ales sa iesiti din SITUATIE OLIMPICI');

     readln;

end.


5. Bibliografie

  • I. Tomescu, Bazele informaticii, manual pentru licee/clase de informatica, clasa a X-a, editura Didactica si Pedagogica, Bucuresti, 1996
  • S. Tudor, Tehnici de programare, manual clasa a X-a, editura L&S Infomat, 1996







Politica de confidentialitate

.com Copyright © 2019 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.


Proiecte

vezi toate proiectele
 PROIECT DE LECTIE Clasa: I Matematica - Adunarea si scaderea numerelor naturale de la 0 la 30, fara trecere peste ordin
 Proiect didactic Grupa: mijlocie - Consolidarea mersului in echilibru pe o linie trasata pe sol (30 cm)
 Redresor electronic automat pentru incarcarea bateriilor auto - proiect atestat
 Proiectarea instalatiilor de alimentare ale motoarelor cu aprindere prin scanteie cu carburator

Lucrari de diploma

vezi toate lucrarile de diploma
 Lucrare de diploma - eritrodermia psoriazica
 ACTIUNEA DIPLOMATICA A ROMANIEI LA CONFERINTA DE PACE DE LA PARIS (1946-1947)
 Proiect diploma Finante Banci - REALIZAREA INSPECTIEI FISCALE LA O SOCIETATE COMERCIALA
 Lucrare de diploma managementul firmei “diagnosticul si evaluarea firmei”

Lucrari licenta

vezi toate lucrarile de licenta
 CONTABILITATEA FINANCIARA TESTE GRILA LICENTA
 LUCRARE DE LICENTA - FACULTATEA DE EDUCATIE FIZICA SI SPORT
 Lucrare de licenta stiintele naturii siecologie - 'surse de poluare a clisurii dunarii”
 LUCRARE DE LICENTA - Gestiunea stocurilor de materii prime si materiale

Lucrari doctorat

vezi toate lucrarile de doctorat
 Doctorat - Modele dinamice de simulare ale accidentelor rutiere produse intre autovehicul si pieton
 Diagnosticul ecografic in unele afectiuni gastroduodenale si hepatobiliare la animalele de companie - TEZA DE DOCTORAT
 LUCRARE DE DOCTORAT ZOOTEHNIE - AMELIORARE - Estimarea valorii economice a caracterelor din obiectivul ameliorarii intr-o linie materna de porcine

Proiecte de atestat

vezi toate proiectele de atestat
 Proiect atestat informatica- Tehnician operator tehnica de calcul - Unitati de Stocare
 LUCRARE DE ATESTAT ELECTRONIST - TEHNICA DE CALCUL - Placa de baza
 ATESTAT PROFESIONAL LA INFORMATICA - programare FoxPro for Windows
 Proiect atestat tehnician in turism - carnaval la venezia




Examen pentru certificarea calificarii profesionale informatica - DISPOZITIVE MEDIA
Functiile unui sistem informational
SISTEME INFORMATIONALE SI SISTEME INFORMATICE IN GESTIUNEA ORGANIZATIILOR
Concepte de baza ale Tehnologiei Informatiei (IT)
SOFT IMOBILIAR
Realizarea unui magazin virtual
MICROSOFT EXCEL
SISTEME INFORMATICE PENTRU ASISTAREA DECIZIEI


Termeni si conditii
Contact
Creeaza si tu