241309568-Informatica-Clasa-9-10

download 241309568-Informatica-Clasa-9-10

of 37

description

info

Transcript of 241309568-Informatica-Clasa-9-10

Clasa 9-a , INFO

Clasa 9-a ,INFO

1. Notiunea de algoritm2. Pseudocod. Date. Expresii3. Instructiuni de intrare/iesire. Atribuirea. AF: interschimbarea a 2 valori4. Instructiunea de decizie. AF: maximul a doua numere(psp;multimi)

5. Instructiunea CAT TIMP(xyz;capete;alo;cadouri;sume4;fazanr)

1. AF:Prelucrarea sirurilor cu numar necunoscut de valori (care se incheie cu zero)2. AF:Calculul CMMDCsi CMMMC(ingerasi)

6. Instructiunea PENTRU(case1;conturi;bancomat;gardul;rachete;prize;vraji;pin;barca;cabina)

1. AF:Prelucrarea sirurilor cu numar cunoscut de valori2. AF:Divizibilitate. N este prim?(tort;vraji)

7. Instructiunea EXECUTA CAT TIMP(triplu)

1. AF:Prelucrarea cifrelor unui numar natural8. Care instructiune repetitiva este mai buna?9. AF: Conversia unui numar natural din baza 10 in baza B10. AF:Conversia unui numar din baza B in baza 1011. AF:Sirul lui Fibonacci1.

L1. Notiunea dealgoritm

Istoric. Definitie

Cuvantul algoritm provine de la numele unui matematician arab (Mohammed ibn-Musaal-Khowarizmi) a carui lucrari au fost traduse in latina sub numele deAlgoritmus.

Definitia actuala a cuvantuluialgoritm:

Ansamblu de simboluri folosite n matematic i n logic, permind gsirea n mod mecanic (prin calcul) a unor rezultate.

Succesiune de operaii necesare n rezolvarea unei probleme oarecare

Din punctul de vederea al informaticii, algoritmul reprezinta rezolvarea etapizata, in pasi mici, elementari, a unei probleme.

Scopul folosirii algoritmului este aplicarea lui la o serie pe probleme care au aceeasi metoda de rezolvare; adica, pentru orice dateale problemei, algortimul trebuie sa se incheie cu un raspuns.

Un exemplu in acest sens este acuatia de gradul I. Exista o infinitate de ecuatii de gradul I dar toate se subscriu aceleiasi ecuatii genericeA*X+B=0. Algoritmul trebuie sa rezolve aceasta ecuatie generica pentru a obtine rezultate corecte pentru intreaga clasa se ecuatii de gradul I sau sa anunte eroarea in cazul in care simbolul A ar avea valoarea 0.

Caracteristici

Deducem de aici o serie de proprietati pe care un algoritm corect trebuie sa le indeplineasca:

sa aiba caracter de generalitate: sa rezolve o intreaga clasa de probleme de acelasi gen (pentru orice date de intrare)

sa aiba finitudine: sa ofere un raspuns la problema si sa se incheie in timp util

sa fie clar: calculul/etapele sa fie descriese intr-o maniera fara dubii

DATE DE INTRARE -> ALGORITM -> DATE DE IESIREReprezentarea algoritmilor

S-au identificat cateva structuri folosite in descrierea unui algoritm:

secventa: pasii sa se execute unul dupa altul

testul: in cazul in care rezolvarea trebuie sa raspunda unei intrebari sa putem aplege traseul logic ce trebuie urmat

repetitia: sa putem repeta o anumita secventa daca algoritmul o cere

De asemeni,pentru exprimarea algoritmilors-au incercat metode care sa poata fi intelese de toti. Iata cateve dintre ele:

scheme logice: metoda grafica care specifica traseul ce trebuie urmat

pseudocod: un set de reguli de scriere , in principiu in limba engleza; pt elevi s-a simplificat, folosindu-se aceleasi notatii si limba romana (o varianta care se poate folosi in laborator gasiti la http://www.haskell.org/haskellwiki/Rodin/Download)

limbaj de programare: mult mai strict ca exprimare dar folosind aceleasi concepte.

Limbajul RODIN prezentare succintaObs: Nu exista declaratii de variabile

Programul principal

{ instr; }

Instructiuni de citire/afisare

citestevariabila;

scrieexpresie;

text . text;

Atribuirea

fievariabila=expresie;

Operatori logici:

SAU, SI,

Instructiune de test

daca (COND) atunciinstraltfelinstr;

Instructiuni repetitive

cat timp (COND) {instr;};

executa {inst1;instr2;}atat cat (COND);

repeta {instr1; instr2;}pana cand (COND)

pentru (atribuire; test ;pasul urm) {instr;};

2.L2. Pseudocod. Date.Expresii

Cuvantulpseudocodprovine dinpseudo, care inseamna fals, sicodcare se refera la textul scris intr-un limbaj de programare. Deci pseudocod inseamna un asa-zis limbaj de programare.

Pseudocodul foloseste aceeasi operatori si o exprimare la relaxata fata de un limbaj consacrat , care cere rigurozitate.

Pseudocodul, ca orice limbaj, foloseste date, variabile, operatii si instructiuni.

Pentru doritori, va prezint o varianta de pseudocod apropiata de cea din manual,limbajulRodina domnului profesor Dan Popa de la Univeristatea Bacau. In acest fel puteti pigmenta orele de informatica din clasa a 9-a si cu ore de laborator.:)Date

Datele cu care lucreaza un algoritm (scris in pseudocod) sunt:

valori intregi: 12, -5, 17

valori reale: 3.14, -1005.25, ; observati ca folosim punct zecimal si nu virgula ca in notatia de la matematica

valori logice: adevarat (true) si fals (false)

siruri de caractere: introdu valoarea:, rezultatul este:

Variabile

O variabila este un simbol care se caracterizeaza prin:

nume; se noteaza cu combinatii de litere sau cifre dar intotdeauna primul caracter este litera: a, Beta, nr1, nr2

tip de data: intreg, real, sir de caractere, logic

valoare: functie de tipul de data asociat, o variabila poate avea valori din cele de mai sus; valoarea memorata se poate schimba, de unde si numele de variabila;

Practic, o variabila se comporta ca o cutie ce poate fi folosita doar pentru ceva anume: valorile intregi in cutii pentru valori intregi si valori reale in cutii pentru valori reale; doar nu puneti zahar intr-o cutie de pantofi.:).

Din acest motiv, la inceputul algoritmului nostru in pseudocod trebuie sa specificam cu ce variabile lucram si ce tip au, ca in exemplul de mai jos:

intregm,nrealx,y.zlogicok, exista, esteExpresii

Expresiile sunt foormate din operatori si operanzi. Formeaza expresie urmatoarele

o variabila variabilaoperatorvariabila expresieoperatorexpresie operatorexpresie(cazul operatorilor unari de genul- (5+3))

Dintreoperatoriifolositi vom vorbi acum numai de ceiintregi(care se folosesc numai pentru operanzi intregi):

semnul - se foloseste pentru scaderi sau ca operator unar

semnul + se foloseste pentru adunari

semnul * se foloseste pentru inmultiri

semnul / se foloseste pentru impartiri

semnul % se foloseste pentru a obtine restul impartirii primului operand la cel de al doilea

a % b = restul impartirii luialab a % 2 = restul impartirii luiala 2, care este 1 dacaaeste impar si 0 dacaaeste par

a % 10 = restul impartirii lui a la 10, care este intotdeauna ultima cifra a luia, cifra unitatilor

prioritatea operatiilor este aceeasi ca in matematica; mai intai inmultirile si impartirile si apoi adunarile si scaderile

se pot folosi si paranteze pentru expresiile mai complicate, dar numai perechide paranteze rotunde

atentie la ordinea operatiilor si folosirea parantezelor rotunde (ex. ecuatia de gradul 2):

x1=-b+ radical(b*b-4*a*c)/2*a

x1=(-b+ radical(b*b-4*a*c))/2*a

x1=(-b+ radical(b*b-4*a*c))/(2*a)

care din variantele de mai sus este corecta?

prima imparte numai radicalul la 2, rezultatul este inmultit cu a si apoi se efectueza scaderea

al doilea exemplu pune parantezele pentru numarator dar imaprte numai la 2, rezultatul impartirii fiind inmultit cu a

abia ultima varianta separa numitorul si numaratorulprin paranteze

3.

L3. Instruciuni intrare/ieire.Atribuirea

Instructiuni de intrare ieire

Asa cum am vazut in lectiile anterioare schema fluxului de date in rezolvarea unei probleme este urmatoarea:

Date de intrare -> Algoritm -> Date de iesire (Rezultate)Deducem ca aven nevoie de o metoda de a prelua datele initiale (ale problemei reale) pentru a le putea prelucra in algoritm. De asemenea, avem nevoie de o metoda de a transmite rezultatul calculului nostru.

Pentru preluarea datelor vom folosi instructiuneaCiteste.

Sintaxa:Citestevariabila; Exemplu:Citestea;

Efect: Se citeste o valoarea care va fi memorata in variabila a

Observatii:

pentru intreg n; citeste n , nu putem introduce o valoare reala (3.14) deoarece variabilaneste declarata ca fiind intreaga

Pentru afisarea rezultatului vom folosi instructiuneaScrie:

Sintaxa:Scrieexpresie Exemplu: Scriea

Efect:

instructiuneaScrieafiseaza valoarea expresiei

presupunand ca ceea ce sescrieeste transmis care monitor, atunci prima instructiunescrieafiseaza sirul de caractereRezultatul problemeiiar cea de a doua afiseaza valoarea memorata in variabilaala acel moment

Observatii pentruafisarea unor texte folosim text acesta este mesajul instructiunea scrie afiseaza valoarea expresiei; atunci o instructiune de tipulScrie a+bva afisa valoarea calculata a expresieia+b; adica se aduna valoarea luiacu valoarea luibsi se afiseaza rezultatul expresiei

Pana acum, cel mai complicat algoritm pe care il putem scrie este cel de adunare a doua valori intregi:

Intrega, b;

Citestea, b;

Scriea+b.

Daca ar fi doar atat:PAtribuirea

Pentru a schimba valoarea unei variabile pot folosi citirea. Daca totusi doresc ca variabila sa primeasca valoarea unei expresii calculate pe parcursul algoritmului, atunci am nevoie de atribuire:

Sintaxa: variabila