Date post: | 25-Dec-2015 |
Category: |
Documents |
Upload: | ion-domnicu |
View: | 16 times |
Download: | 4 times |
Ministerul Educaţiei al Republicii Moldova
Colegiul Industrial-Pedagogic din Cahul
Catedra Informatică
RAPORT
practica de inițiere în specialitate
Efectuat : Domnicu Ion, I.1.1_________
(Numele, prenumele studentului, grupa)
Verificat : Pîrvan Svetlana___________
(Numele, prenumele coordonatorului)
Nota: __________________________
Cahul 2014
2
CuprinsI.Introducere........................................................................................................................................... 3
II.Obiectivele practicii:............................................................................................................................ 3
III. Competenţe transversale:..................................................................................................................4
IV. Competenţe generale:....................................................................................................................... 4
V. Competențe specifice:........................................................................................................................ 4
VI. Tabelul de corelare a competenţelor şi conţinuturilor.......................................................................5
VII.Sarcină individuală........................................................................................................................ 10
Problema I........................................................................................................................................ 10
Condiția:....................................................................................................................................... 10
Listingul programului:................................................................................................................... 10
Rezultatele testării programului................................................................................................... 11
Problema II....................................................................................................................................... 12
Condiția........................................................................................................................................ 12
Listingul programului:................................................................................................................... 12
Rezultatele testării programului................................................................................................... 13
Problema III...................................................................................................................................... 13
Condiția........................................................................................................................................ 13
Listingul programului:................................................................................................................... 14
Rezultatele testării programului................................................................................................... 15
Problema IV...................................................................................................................................... 15
Condiția........................................................................................................................................ 15
Listingul programului:................................................................................................................... 15
Rezultatele testării programului................................................................................................... 17
Problema V....................................................................................................................................... 18
Condiția........................................................................................................................................ 18
Listingul programului:................................................................................................................... 18
Rezultatele testării programului................................................................................................... 19
Problema VI...................................................................................................................................... 19
Condiția........................................................................................................................................ 19
Listingul programului:................................................................................................................... 19
VIII. Concluzie....................................................................................................................................... 26
IX. Lista bibliografică............................................................................................................................. 26
3
I.IntroducereObiectivele practicii sunt realizarea programului dat de către profesorul de practică.
Principalul obiectiv al acestui program este realizarea, să ne pună într-o situaţie din care noisă putem găsi o soluţie. Odată cu realizarea programului, noi ca studenţi ne vedem deja înpostura de angajat care are o anumită responsabilitate de a elabora programul conformcerinţelor date de conducătorul practicii. După finisarea programului, şi a perioadei depractică, noi devenim mai maturi în domeniul nostru. Toate dificultăţile întîlnite pe perioadapracticii, sunt doar un plus pentru noi.
Programele pe care le-am avut la practică sunt programe în domeniul tipurilor de date.Toate acestea sunt doar cîteva din mulţimea de întrebări care trebuie de realizat pe bazaobiectivului practicii.
Pe tot parcursul practicii programul care trebuia de realizat ne impunea să citim noisurse de informaţie care ne dezvolta capacităţile de programare în limbajul Pascal ABC.
Limbajul de programare Pascal a fost elaborat în anul 1970 de profesorul NikolausWirth de la Universitatea Tehnică din Elveţia. Numit astfel în cinstea matematicianului şifilozofului francez Blaise Pascal, limbajul a cunoscut o răspândire mondială şi a fostimplementat practic pe toate categoriile de calculatoare: supercalculatoare, calculatoarelemari şi calculatoare personale.
Pe parcursul anilor elementele limbajului standard Pascal au fost îmbogăţitesubstanţial, creându-se astfel versiunile Turbo Pascal 6.0, Turbo Pascal 7.0, Borland Pascal şichiar limbaje noi, de exemplu, Modula-2, Delphi şi altele. Pascal este unul din cele maiaccesibile limbaje specializate pentru scrierea aplicaţii în domeniul automatizării procesuluide prelucrare pe calculator a informaţiei.
II.Obiectivele practicii:Obiectivele generale ale practicii instructive:
consolidarea cunoştinţelor teoretice, obţinute pe parcursul studierii limbajelor de
programare (Pascal ABC, Procesarea textului, calcul tabelar, prezentări
multimedia, Comunicație electronică );
însuşirea tehnologiei de elaborare a programelor;
dezvoltarea abilităţilor muncii de sine stătător și în echipă;
formarea deprinderilor de cercetător.
Elevul la practica de instruire imită întregul proces de elaborare a unui set de programe, ce-i
permite să evolueze în rolul de elaborator şi organizator al proiectului.
Sarcina individuală pentru elev constă dintr-un set din 6 probleme, formulate în aşa mod,
încât să cuprindă cât mai deplin toate compartimentele cursului studiat. Gradul complexităţii
problemelor de rezolvat variază larg, ţinând cont de capacităţile şi pregătirea generală a
elevului respectiv.În procesul lucrului de sine stătător asupra sarcinii individuale, elevii
elaborează şi descriu algoritmi într-un limbaj de programare, testează şi depanează
programele respective.
4
III. Competenţe transversale:CT1. Competenţe de învăţare / de a învăţa să înveţi;CT2. Competenţe de comunicare în limba maternă / limba de stat;CT3. Competenţe de comunicare într-o limbă străină;CT4. Competenţe acţional-strategice;CT5. Competenţe de autocunoaştere şi autorealizare;CT6. Competenţe interpersonale, civice, morale;CT7. Competenţe de bază în matematică, ştiinţe şi tehnologie.CT8. Competenţe digitale în domeniul tehnologiei informaţiei şicomunicaţiilor (TIC);CT9. Competenţe culturale, interculturale (de a recepta şi a crea valori);CT10. Competenţe antreprenoriale.
IV. Competenţe generale:CG1. Formarea unei viziuni ştiinţifice asupra componentei informatice în societateacontemporană.CG2. Identificarea structurii generale a sistemelor digitale, a principiilor defuncţionare a sistemelor de transmitere, stocare şi de prelucrare a informaţiei.CG3. Elaborarea modelelor informatice a obiectelor, sistemelor şi proceselor frecventîntâlnite în activitatea cotidiană.CG4. Aplicarea metodelor de algoritmizare, de formalizare, de analiză, de sinteză şide programare pentru soluţionarea problemelor legate de prelucrarea automatizată ainformaţiei.CG5. Translarea algoritmilor frecvent utilizaţi într-un limbaj de programare de nivelînalt.CG7. Efectuarea experimentelor virtuale, rezolvarea problemelor de activitatecotidiană şi elaborarea de modele ale fenomenelor studiate, folosind aplicaţii,laboratoare şi medii digitale educaţionale; interpretarea rezultatelor obţinute.CG8. Folosirea competenţelor informatice pentru căutarea şi selectarea informaţiilor în interes de autoinstruire şi orientare profesională.CG9. Respectarea dreptului de autor asupra resurselor digitale, a normelor de etică şisecuritate informaţională. Protejarea de infracţiunile informatice.
V. Competențe specifice:CS1. Analiza structurală a problemei;CS2. Divizarea problemelor complexe în probleme mai simple şi reducerea lor la celedeja rezolvate;CS3. Aplicarea principiilor programării structurate și procedurale în scriereaalgoritmilor;CS4 Utilizarea tipurilor structurate de date (tablou, şir de caractere, mulţime, articol,fişier) adecvate pentru organizarea şi prelucrarea datelor;CS5. Utilizarea subprogramelor la elaborarea algoritmilor de rezolvare a problemelor;CS6. Estimarea complexităţii algoritmilor destinaţi soluţionării problemelor propuse;CS7 Editarea și procesare textelor cu ajutorul aplicațiilor corespunzătoare;
5
CS8 Aplicarea tehnicilor de testare şi depanare a programelor elaborate;CS9 Utilizarea aplicațiilor de crearea a prezentărilor multimedia;CS10 Utilizarea tehnologiilor cloud de păstrarea și partajare a informațiilor.
VI. Tabelul de corelare a competenţelor şi conţinuturilor.
Denumirea
competenţei specifice
Abilități Cunoștințe
Analiza structurală a
problemei;
Elaborează specificaţiile
problemei.
Reprezintă formal
algoritmii de rezolvare a
problemelor.
Etapele rezolvării problemelor.
Algoritmi. Caracteristicile algoritmilor.
Programarea structurata. Structurile
fundamentale:
structura liniară,
structurile repetitive (cu test final, cu test iniţial, cu număr cunoscut de paşi)
structura alternativă
divizarea problemelorcomplexe în problememai simple şi reducerealor la cele dejarezolvate;
Lucrează cu
subprograme.
Subprograme.
Modularizarea programelor
variabile globale şi locale,
domeniul de vizibilitate,
plasarea subprogramelor în cadrul programului
utilizarea tipurilor
structurate de date
(tablou, şir de
caractere, mulţime,
articol, fişier) adecvate
pentru organizarea şi
prelucrarea datelor;
Implementează tipurile
structurate de date în
rezolvarea problemelor.
Tablouri unidimensionale (Vectori);
Tablou bidimensional (Matrice);
Şiruri de caractere;
Tipul inregistrare (articol);
Fişiere.
estimarea
complexităţii
algoritmilor destinaţi s
oluţionării
Verifică corectitudinea
algoritmilor.
Analiza algoritmilor. Complexitatea algoritmilor.
necesar de memorie,
timpul de execuţie al algoritmului,
6
problemelor propuse; optimalitatea algoritmului, număr de operaţii
utilizarea tehnicilor
adecvate de
programare pentru
elaborarea algoritmilor
şi scrierea programelor
respective;
Utilizează tehnicile
clasice de programare.
Implementează
algoritmii de sortare şi
căutare.
- restricţii de utilizare,
- schema generală a tehnicii,
- identificarea dimensiunii subproblemelor,
- identificarea modalităţii de impărţire în subprobleme,
- rezolvarea subproblemelor,
- identificarea modalităţii de combinare arezultatelor subproblemelor
Criterii de preformanţă:
complexitatea metodei,
utilizarea memoriei şi a altor resurse ale calculatorului,
metoda de implementare
Aplicarea operaţiilor
specifice editării
textelor;
Utilizarea
instrumentelor de
corectare gramaticală a
textelor;
Crearea şi prelucrarea
listelor;
Utilizarea
instrumentelor de
corectare gramaticală a
textelor;
Inserarea obiectelor;
Generarea unui cuprins;
Aplicarea operaţiilor
;specifice editării
textului.
Editarea unui
document.
Formatarea
caracterelor:
-tehnoredactare;
-font;
-stil de afișare;
-formatarea
caracterelor.
Formatarea
paragrafelor:
-paragraf, aliniere,
identare, spațiere, stil
de paragraf.
Așezare în pagină:
-formatare a paginilor,
antet și subsol,
secțiune, stil de
caractere, șablon.
Liste:
-tipuri de marcare,
Exerciţii de:
Editare şi formatare acoaracterelor şi paragrafelor.
Creare a listelor marcate şi numerotate.
Creare a listelor pe nivele.
Supradimensionare a primului character şi
divizare a textului în mai multe coloane.
Configurare a documentului Word ş.a.
Transformare, editare, copiere a obiectelor.
Scriere a formulelor matematice şi de inserare a
simbolurilor.
Creare de anteturi şi subsoluri.
Formatare a elementelor unui tabel.
Calcul cu datele din tabel.
Sortare a datelor din tabel utilizînd anumite
criterii.
Convertirea unui text în tabel şi invers.
Studii de caz:
Generare de cuprins. Liste.
7
Crearea şi editarea
tabelelor;
Aplicarea operaţiilor
specifice editării
tabelelor
tipuri de numerotare;
Obiecte. Referinţe.
Generarea cuprinsului.
-imagini desenate,
imagini predesenate,
formule, fișiere audio,
fișiere video.
Metode de inserare a
obiectelor:
-prin memoria tampon,
prin apelul altor
aplicații, din fișiere
externe.
Crearea tabelelor.
-rînd, coloană, celulă;
-înserarea unei linii,
coloane;
-unirea celulelor;
-divizarea celulelor;
-template a tabelelor;
-formatarea celulelor;
-autoformat,
formatarea
condiţională;
-convertirea unui text în
tabel şi invers.
Elaborarea
prezentărilor utilizînd
instrmentele de
operare cu diapozitive.
Introducerea şi editarea
textelor din
componenţa
prezentărilor;
Crearea prezentărilor
ținînd cont de regulile
de bază a unei
prezentări electronice..
Efecte de animaţie și
tranziție a slide-urilor.
Inserarea sunetelor și
fişierelor video.
Exerciţii de:
Editare a slide-urilor
Efectuare a operaţiilor cu slide-urile;
Inserare şi utilizare a elementelor din alte
aplicaţii a SO Windows în aplicaţia MS Power
Point;
8
Inserarea elementelor;
Schimbarea
proprietăţilor slide-
ului;
Derularea prezentărilor;
Utilizarea efectelor de
animaţie.
Utilizarea fișierelor
sunet și fișierelor video.
- structura prezentării;
-inserarea casetelor de
text pe diapozitive.
-formatarea textului:
font, dimensiune, stil de
afișare, aliniere,
marcaje de listă,
proprietăți ale
paragrafului.
-selectarea copierea,
mutarea și ștergerea
fragmentelor de text.
-inserarea imaginilor pe
diapozitive: dintr-o
locație externă, din
biblioteca sistemului de
prezentări, din colecția
de primitive grafice, din
dispozitivele foto
digitale și scanere.
-formatarea imaginilor:
poziționarea,
redimensionarea,
selectarea gamei
coloristice, ajustarea
parametrilor de
luminozitate și contrast,
rotirea imaginilor,
decuparea
fragmentelor de
imagini.
-utilizarea efectelor de
animație: efecte de
apariție, efecte de
deplasare, efecte de
redimensionare; efecte
de dispariție.
-difuzarea prezentărilor.
Studii de caz:
Elaborarea unei prezentări electronice la o
anumita temă din Informatică
9
Utilizarea metodelor de
navigare prin Internet;
Utilizarea
instrumentelor de
căutare în Internet;
Descărcarea datelor din
reţeaua Internet.
Crearea unui cont de
poştă electronică;
Utilizarea poştei
electronice pentru
transmiterea mesajelor
şi a fişierelor.
Descrierea unui
Browser. Internet.
Conectarea unui
computer la internet.
Serviciul de poştă
electronică. Motoare
de căutare.
-posta electronică;
- transferul de fișiere;
- accesul la
calculatoarele
aflate la distanță;
- serviciul de căutare și
vizualizare a
informațiilor
-istoria și dezvoltarea
rețelei World Wide
Web.
-navigarea pe Web.
Copierea datelor din
rețea:
- copierea textelor,
copierea imaginilor,
copierea fișierelor
multimedia, copierea
paginilor web,
permisiunile de copiere
și utilizare a
materialelor accesate.
Exerciţii de:
Aplicare a brows-erelor.
Ataşare a fişierelor la scrisori.
Folosire a motoarelor de căutare;
Creare a unui cont de poşta electronică şi
utilizarea ei (schimb de informaţie dintre cutiile
poştale).
Studii de caz:
Oameni celebri în Republica Moldova-informaţie
din Internet.
VII.Sarcină individuală
Problema I
Condiția:1. Fişierul date.in conţine elementele unei matrice. În prima linie sunt scrise numărul de lini şi de coloane separate printr-un spaţiu. Pe următoarele linii sunt scrise elementele
10
matricei. Elaboraţi un program care va afişa la ecran şi va scrie în fişierul date.out elementele matricei şi poziţiile pe care se află valoarea maximală.
Listingul programului:type matrice = array[1..100, 1..100] of integer; //se defineste tipul matrice
var t: matrice; f, g: text;//fisierele logice de tip text n, m: integer;//numarul de rinduri si coloane
procedure citeste;var i, j: integer;//se declara variabilele localebegin assign(f, 'date.in');//asociaza fisierului extern "date.in" variabila de tip text "f" reset(f);//se pregateste fisierul "f" pentru citirea datelor readln(f, n, m);//se citeste numarul de rinduri si coloane din fisierul "f" for i := 1 to n do for j := 1 to m do read(f, t[i, j]);//se citesc elementele matricei din fisierul "f" close(f);//se inchide fisierul logic "f"end;
procedure afiseaza;var i, j: integer;//se declara variabilele locale procedure pozitia; var i, j, max: integer;//se declara variabilele locale begin max := t[1, 1];//se presupune ca elementul maxim ar fi primul element for i := 1 to n do for j := 1 to m do if max < t[i, j] then max := t[i, j];//se compara valoarea elementul maximal cu cea a celorlalte elemente ale matricei for i := 1 to n do for j := 1 to m do if max = t[i, j] then begin write(g, ' rindul ',i, ' ',' coloana ', j); write(' rindul ',i, ' ',' coloana ', j); end;//se identifica pozitia elementului maxim dupa care se afiseaza la ecran si in fisierul "date.out" pozitia elementului maxim end;
begin assign(g, 'date.out'); //asociaza fisierului extern "date.out" variabila de tip text "g" rewrite(g);//se pregateste fisierul g pentru rescrierea datelor
11
for i := 1 to n do begin for j := 1 to m do begin write( t[i, j]:4);//se afiseaza la ecran elementele matricei pe 4 pozitii write(g, t[i, j]:4);//se afiseaza in fisierul "date.out" elementele matricei pe 4 pozitii end; writeln; writeln(g); end; pozitia;//se apeleaza procedura pozitia close(g);//se inchide fisierul gend;
begin citeste;//se apeleaza procedura citeste afiseaza;//se afiseaza procedura afiseazaend.
Rezultatele testării programuluiDate de intrare
Date de iesire
Problema II
Condiția2. Fişierul date.in conţine un şir de caractere. Elaboraţi un program care va determina numărul de majuscule din şir. Rezultatul va fi afişat la ecran cât şi în fişierul date.out.
Listingul programului:
12
var s: string;//sirul de caractere n: integer;//numarul de majuscule f, g: text;//fisierele logice de tip text
procedure citeste;begin assign(f, 'date.in');//asociaza fisierului extern "date.in" variabila de tip text "f" reset(f);//se pregateste fisierul "f" pentru citirea datelor readln(f, s);//se citeste sirul in fisierul "f" close(f);//se inchide fisierul "f"end;
function majuscule(sir: string): integer;var i: integer;//se declara variabilele locale ch: set of char;//sunt salvate toate literele majuscule din alfabetbegin n := 0;//numarul majusculelor se initializeaza cu 0 ch := ['A'..'Z'];//variabila ce contine caractere MAJUSCULE for i := 1 to length(sir) do if sir[i] in ch then inc(n);//daca caracterul cu numarul de ordine i se include in variabila "ch" atunci se mareste numarul majusculelor cu 1 majuscule := n;end;
begin citeste;//se apeleaza procedura cireste; assign(g, 'date.out');//asociaza fisierului extern "date.out" variabila de tip text "g" rewrite(g);//se pregateste fisierul "g" pentru rescrierea datelor writeln(g, majuscule(s));//se afiseaza in fisierul "g" numarul majusculelor writeln(majuscule(s));//se afiseaza la ecran numarul majusculelor apelind procedura majuscule close(g);//se inchide fisierul "g" readln;end.
Rezultatele testării programuluiDate de intrare
Date de iesire
13
Problema III
Condiția3. Ionel a scris un program, care generează numere întregi aleatoare. El a observat, cănumărul N, generat de program, de obicei conţin o cifră, care apare mai des decît celelalte.Scrieţi un program, care determină această cifră. Dacă există mai multe cifre cu numărmaxim de apariţii, afişaţi cea mai mică cifră
Intrare: Fişierul text cifre.in conţine o singură linie cu numărul generat de programul lui Ionel.
Ieşire: Fişierul text cifre.out conţine un singur număr întreg: cifra cu număr maxim de apariţii.
Restricţii: 1<N<10200
Notă : testele cu valori N < 2000000000 se apreciază cu câte 5 pt.
Exemplu:
cifre.in cifre.out
1234565 5
11111222223333322222 2
Listingul programului:type cifre = array[0..9] of integer;//tipul pentru salvarea numarului de apariti a cifrelor numere = array[1..255] of integer;//tipul in care salvam cifrele din fisier maxim = array[0..9] of integer;//cifrele care se repeta de un nr maxim de ori
var//variabile globale f, g: text;//fisierele logice de tip text
14
s: string;//sirul de caractere c: cifre; max, err, i, j: integer; n: numere; nmax: maxim;
begin assign(f, 'date.in');//asociaza fisierului extern "date.in" variabila de tip text "f" assign(g, 'date.out');//asociaza fisierului extern "date.out" variabila de tip text "g" reset(f);//deshidem fisierul pentru citire rewrite(g);//deschidem fisierul pentru scriere read(f, s);//citim din fisierul "f" sirul de numere for j := 1 to length(s) do val(s[j], n[j], err);//transformam sirul in numere de tip intreg for j := 0 to 9 do //salvam nr de apariti a cifrelor in varibaila c for i := 1 to length(S) do if n[i] = j then inc(c[j]); max := c[0]; for i := 1 to 9 do //aflam maximul care se gaseste de mai multe ori if c[i] > max then max := c[i]; j := 1; for i := 0 to 9 do //aflam care cifra este mai mica daca sunt 2 cifre cu numarul egal de aparitii if c[i] = max then begin nmax[j] := i; inc(j); end; writeln(g, nmax[1]);//afisam in G numarul care se gaseste de cel mai multe ori close(f);//se inchide fisierul f close(g);//se inchide fisierul gend.
15
16
17
Rezultatele testării programuluiDate de intrare
Date de iesire
Problema IV
Condiția
4. Se consideră un tablou bidimensional cu numere întregi. Elaboraţi un program cufuncţii/proceduri prin intermediul cărora:
a) De la tastatură se vor citi elementele tabloului;b) Se vor afişa elementele tabloului la ecran;c) Va fi determinat elementul maximal;d) Va fi determinat elementul minimal;e) Se va determina numărul de elemente maximale;f) Se va determina numărul de elemente minimale;g) Se va afişa sumele pe linii;
Listingul programului:type matrice = array[1..100, 1..100] of integer;//se defineste tipul matrice
var ma: matrice;//se declara variabilele globale m, n: integer;//numarul de rinduri si coloane
procedure citeste;var i, j: integer;//se declara variabilele localebegin read(n, m);//se citeste numarul de linii si coloane ale matricii
18
for i := 1 to n do for j := 1 to m do read(ma[i, j]);//se citesc elementele matriciiend;
procedure afiseaza;var i, j: integer;//se declara variabilele localebegin for i := 1 to n do begin for j := 1 to m do write(ma[i, j]:2);//se afiseaza elementele matricei pe 2 pozitii writeln; end;end;
procedure minim;var elmn, min, i, j: integer;//se declara varibilele localebegin elmn := 0;//se initializeaza numarul de elemente minime min := ma[1, 1];//se presupune ca elementul minim este primul element al matricei for i := 1 to n do for j := 1 to m do if ma[i, j] < min then min := ma[i, j];//se identifica elementul minim writeln('min= ', min);//se afiseaza la ecran elementul minim for i := 1 to n do for j := 1 to m do if min = ma[i, j] then inc(elmn);//se identifica numarul de elemente minime writeln('elemente minime ', elmn);//se afiseaza la ecran numarul de elemente minimeend;
procedure maxim;var elmx, max, i, j: integer;//se declara variabilele localebegin elmx := 0;//se initializeaza numarul de elemente maxime max := ma[1, 1];//se presupune ca elementul maxim ar fi primul element al matricei for i := 1 to n do for j := 1 to m do if max < ma[i, j] then max := ma[i, j];//se identifica elementul maxim writeln('max= ', max);//se afiseaza la ecran elementul maxim for i := 1 to n do for j := 1 to m do if max = ma[i, j] then inc(elmx);//se identifica numarul de elemente maxime writeln('elemente maxime ', elmx);//se afiseaza la ecran numarul de elemente maxime
19
end;
procedure sumaln;var i, j, s: integer;//se declara variabilele localebegin for i := 1 to n do begin s := 0;//suma se initializeaza cu 0 for j := 1 to m do s := s + ma[i, j];//suma elementelor de pe linia i writeln('suma pe linia ', i, ' este ', s);//se afiseaza la ecran suma elementelor de pe fiecare linie
end;end;
begin citeste;//se face apelul la procedra citeste afiseaza;//se face apelul la procedra afiseaza minim;//se face apelul la procedra minim maxim;//se face apelul la procedra maxim sumaln;//se face apelul la procedra sumaln readln;end.
Rezultatele testării programuluiDate de intrare
Date de iesire
20
Problema V
Condiția
5. Calcule. Unitatea gramaticală <Expresie> este definită cu ajutorul următoarelor formulemetalingvistice:
<Cifră>::= 0|1|2|3|4|5|6|7|8|9
<Număr>::= <Cifră>|<Număr><Cifră>
<Semn>::= +|-
<Expresie>::= <Număr>|<Număr><Semn><Expresie>
Elaboraţi un program care evaluează astfel de expresii.
Restricţii. Un număr poate conţine cel mult cinci cifre. O expresie poate include cel mult 250 de caractere.
Date de intrare Date de ieşire
22+01-342+000 -319
Listingul programului:var s: string;//sirul de caractere i, j, error, summa: longint;//suma c: array[0..100]of char;//semnul "+" /"-" s1: array[1..100]of string;//caracterele -string pina la "+"/"-" si dupa numar: array [1..100] of integer;//numerele- integer pina la "+"/"-" si dupa
begin readln(s);//se citeste de la tastatura sirul de caractere j := 1;//se initializeaza nr de semne cu 1; for i := 1 to length(s) do begin if (s[i] = '+') or (s[i] = '-') then begin c[j] := s[i];inc(j); end else s1[j] := s1[j] + s[i]; //daca s[i] este un semn se salveaza in vectorul c[j] altfel se concatineaza caracterele string pina la "+"/"-" si dupa in vectorul s1[j] end;
for i := 1 to j do val(s1[i], numar[i], error);//se transforma elementele vectorului ce contine elemente tip string in elemente de tip intreg summa := numar[1]; for i := 1 to j do case c[i] of '+': summa := summa + numar[i + 1];
21
'-': summa := summa - numar[i + 1]; end; writeln(summa);//se afiseaza la ecran suma readln;end.
Rezultatele testării programuluiDate de intrare
Date de iesire
Problema VI
Condiția
6.Elaborați un program de creare a unui fișier, ce conține informație despre elevii uneigrupe. Fiecare componentă a acestui fișier trebuie sa conțină următoarele date:Numărulgrupei; Numărul în grupă după lista; Numele, Prenumele; data nașterii; notele de la ultimasesiune (minimum 5 discipline). Programul trebuie să conțină un meniu de comenzi cerealizează următoarele:
- Crearea fișierului
- Afișarea datelor din fișier
- Adăugarea datelor în fișier
- Crearea unui fișier text cu lista elevilor ce au cel puțin o restanță
- Creare uni fișier text și afișarea listei elevilor în ordine alfabetică
Listingul programului:
uses crt;
label 1, 2, 3, menu;{lista de etichete}//Declararea tipului inregistraretype elev = record nrgrup: string[15];
22
nume: string[15]; prenume: string[15]; an: integer; nrlis: integer; nota: array[1..5] of byte; end;//lista variabilelor globalevar e: array [1..50] of elev; f: file of elev; c: integer; d: char;//Crearea fiierului(f,'elevi.dat')/Stergerea datelor din el (daca exista);procedure creeaza;begin assign(f, 'elevi.dat');//asociaza fisierului extern "elevi.dat" variabila de tip text "f" rewrite(f);//se pregateste fisierul "f" pentru scrierea datelor close(f);//se inchide fisierul "f"end;
//Introducerea datelor in fisierprocedure introdu;var n, i, a: integer;begin assign(f, 'elevi.dat');//asociaza fisierului extern "elevi.dat" variabila de tip text "f" reset(f);//se pregateste fisierul "f" pentru citire textcolor(15);//se seteaza culoarea textului a := 0;//nr de elevi se initializeaza cu 0 while not eof(f) do//cit nu-i sfirsit de fisier se citeste in "f" datele referitoare la fiecare elev begin inc(a); read(f, e[a]); end; close(f);//se inchide fisierul "f" rewrite(f);//se pregateste fisierul "f" pentru rescrierea datelor write('Nr de elevi care doriti sa introduceti:'); read(n); for i := a + 1 to a + n do with e[i] do begin writeln('elevul nr :', i); write('Numarul in lista: '); readln(nrlis); write('Numarul grup: '); readln(nrgrup); write('numele: '); readln(nume); write('prenumele: '); readln(prenume); write('anul: '); readln(an); writeln('notele: ');
23
write('Matematica: '); read(nota[1]); write('L.romana: '); read(nota[2]); write('Fizica: '); read(nota[3]); write('Birotica: '); read(nota[4]); write('Informatica: '); read(nota[5]); writeln;
end; for i := 1 to a + n do write(f, e[i]); close(f);end;//Afisarea datelorprocedure afis;var i, a: integer;begin assign(f, 'elevi.dat'); reset(f); a := 0; while not eof(f) do begin inc(a); read(f, e[a]); end; write('Nr.grup':7, ' Nr.lista':9, 'Numele':10, 'Prenumle':12, ' AnN.':5, 'Mat.':3, 'L.ro.':3, 'Fiz.':3, ' Bir.':3, 'Inf.':3 ); writeln; for i := 1 to a do with e[i] do begin writeln(nrgrup:7, ' ', nrlis:7, ' ', nume:10, ' ', prenume:10, ' ', an:5, ' ', nota[1]:3, ' ', nota[2]:3, ' ', nota[3]:3, ' ', nota[4]:3, ' ', nota[5]:3); end; writeln;end;//Restantieriprocedure restantieri;var a, i, j, m, s: integer;
g, y: text;begin assign(f, 'elevi.dat'); assign(g, 'restantieri.txt'); reset(f); rewrite(g);
24
a := 0; while not eof(f) do begin inc(a); read(f, e[a]); end; writeln('Elevi cu cel putin o singura restanta'); write('Nr.grup':7, ' Nr.lista':9, 'Numele':10, 'Prenumle':12, ' AnN.':5, 'Mat.':5, 'L.ro.':3, 'Fiz.':3, ' Bir.':3, 'Inf.':3 ); writeln(g, 'Nr.grup':7, ' Nr.lista':9, 'Numele':10, 'Prenumle':12, ' AnN.':5, 'Mat.':5, 'L.ro.':3, 'Fiz.':3, ' Bir.':3, 'Inf.':3 ); writeln; for i := 1 to a do begin m := 0; for j := 1 to 5 do if (e[i].nota[j] < 5) and (m = 0) then begin with e[i] do begin writeln(nrgrup:7, ' ', nrlis:7, ' ', nume:10, ' ', prenume:10, ' ', an:5, ' ', nota[1]:3, ' ', nota[2]:3, ' ', nota[3]:3, ' ', nota[4]:3, ' ', nota[5]:3); writeln(g, nrgrup:7, ' ', nrlis:7, ' ', nume:10, ' ', prenume:10, ' ', an:5, ' ', nota[1]:3, ' ', nota[2]:3, ' ', nota[3]:3, ' ', nota[4]:3, ' ', nota[5]:3); inc(m); end; end; end;
writeln; close(f); close(g);
end;//Afisare ordine alfabeticaprocedure ordine;var i, j, n: integer; aux: elev;begin assign(f, 'elevi.dat'); reset(f); n := 0; while not eof(f) do begin n := n + 1; read(f, e[n]); end;
25
for i := 1 to n do for j := 1 to n do if e[i].nume[1] < e[j].nume[1] then begin aux := e[i]; e[i] := e[j]; e[j] := aux; end; write('Nr.grup':7, ' Nr.lista':9, 'Numele':10, 'Prenumle':12, ' An.N':5, 'Mat.':7, 'L.ro.':5, 'Fiz.':4, ' Bir.':4, 'Inf.':4 ); writeln; for i := 1 to n do with e[i] do begin writeln(nrgrup:7, ' ', nrlis:7, ' ', nume:10, ' ', prenume:11, ' ', an:4, ' ', nota[1]:5, ' ', nota[2]:3, ' ', nota[3]:3, ' ', nota[4]:4, ' ', nota[5]:3); end; writeln; close(f);end;//Program de bazabegin menu://Afisarea comenzilor valabile textcolor(11); writeln('~MENU~':42); textcolor(10);write('1: ':20);textcolor(14);writeln('Adaugarea datelor în fisier : '); textcolor(10);write('2: ':20);textcolor(14);writeln('Afisarea datelor din fisier : '); textcolor(10);write('3: ':20);textcolor(14);writeln('Afisarea/Salvarea listei elevilor restantieri: '); textcolor(10);write('4: ':20);textcolor(14);writeln('Afisarea listei elevilor în ordine alfabetica : '); textcolor(10);write('5: ':20);textcolor(12);writeln('Crearea fisierului / Stergerea datelor din fisier: '); textcolor(10);write('6: ':20);textcolor(13);writeln('Inchiderea Programului : '); textcolor(15); //Folosirea uneea din comenzile propuse readln(c); case c of 1: introdu; 2: afis; 3: restantieri; 4: ordine; 5: creeaza; 6: goto 3; end; //Reintoarcerea inapoi la menu,in caz ca mai este nevoie in caz contrar sfirsit program textcolor(12);write('In caz ca doriti sa mai efectuati operatii ,tastati Enter:'); textcolor(15); readln; clrscr; goto menu; 3: end.
26
Meniul este compus din 9 puncte:
- Crearea fișierului
- Afișarea datelor din fișier
27
- Adăugarea datelor în fișier
- Crearea unui fișier text cu lista elevilor ce au cel puțin o restanță
28
- Crearea uni fișier text și afișarea listei elevilor în ordine
alfabetică
VIII. Concluzie
Efectuind 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 subprogramelor.
Cu ajutorul acestei practici am putut înţelege mai bine cum lucrează programul cu fişiere. Am înţeles cum e mai bine să fac programul ca să fie mai eficient şi cît mai mic în volum. La fel am înţeles că trebuie să te atîrni destul de serios faţă de aceea ce faci (de program), pentru al face mai plăcut la folosire şi mai uşor de înţeles. Mi-au apărut unele idei pe viitor la care mă gândeam înainte dar nu ştiam cum să le fac în program.
Practica instructiva reprezinta o parte componenta a procesului – educativ care esteo 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 Procedurala”.
Studentul începător se familiarizează cu programarea, de regulă, în baza elaborării ş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 părţilor componente ale algoritmului, reuniunea diverselor fragmente ale programului într-un produs final, documentare etc.
În cadrul lecţiilor este posibilă examinarea doar a principiilor generale ale metodicii de elaborare a programelor şi anumitor aspecte ale rezolvării problemelor. La rîndul său, practica de instruire imită întregul proces 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 stătătoare a studenţilor şi după rezultatele realizării ei se pot face concluzii cu privire la pregătirea studentului pentru aactiva în domeniul programării, de a evidenţia studenţii cei mai capabili pentru instruirea
29
ulterioară în calitate de specialist în programare.
IX. Lista bibliografică
1. Anatol Gremalschi, Iurie Mocanu, Ion Spinei, „Informatica, Limbajul Pascal”, manual
pentru clasele IX-XI, Editura Ştiinţa 1999.
2. Andrei Braicov, „Turbo Pascal, Culegere de probleme”, Editura Prut Internaţional,
2005.
3. Daniela Saru, „Algoritmi şi Limbaje de Programare”, manual pentru cl. 9, Editura
„Didactica şi Pedagogica”, R.A. Bucureşti, 1998.
4. Cornelia Ivasc, Mona Pruna, „Tehnici de Programare, Aplicaţii”, Editura „Petrion”
Bucureşti 1999.
5. V. Cristea, P. Dumitru, C. Giumale s.a., Dicţionar de informatică, Editura Ştiinţifică şi
Enciclopedică, Bucureşti, 1981.
6. T.Sorin, Tehnici de programare, Teora, Bucureşti, 1996.
7. K. Şandor, Turbo PASCAL 6.0. Ghid de utilizare, Editura Microlnformatica, Cluj-
Napoca, 1993.
8. O.Chirchin, Metodica predării informaticii, Chişinău, Tipogr.UPS „Ion Creangă”, 2004.
9. T.Sorin, Tehnici de programare, Bucureşti, Editura Teora, 1996.
10. V.Cristea, P.Dumitru, C.Giumale ş.a., Dicţionar de informatică, Bucureşti, Editura
Ştiinţifică şi Enciclopedică, 1981.
11. W.Okosi, Învăţămîntul problematizat în şcoala contemporană, Bucureşti, Editura
Didactică şi Pedagogică, 1978.
12. I.Jinga, Manual de pedagogie, Bucureşti, Editura All
13. Educaţional, 1998.
14. I.Nicola, Tratat de pedagogie şcolară, Bucureşti, Editura Didactică şi Pedagogică,
1996.
15. C.Narly, Pedagogie generală, Bucureşti, Editura Didactică şi Pedagogică, 1996.