Istoria apariţiei calculatorului

V-aţi întrebat vreodatã cine a contribuit la inventarea şi dezvoltarea calculatoarelor ? Acum aveţi posibilitatea sã aflaţi. De aceea vã propun sã facem o scurtã întoarcere în timp şi sã vedem cum ar fi putut fi si cum a fost istoria calculatoarelor.

Cum ar fi putut fi …

La începutul secolului al XVII-lea Wilhelm Schickard, un profesor de astronomie, matematicã a creat la Tubingern în Germania o maşină ingenioasã care putea sã adune, sã scadã, şi într-o anumitã mãsurã sã înmulţească, şi sã dividã numere în sute. Din pãcate înainte ca dispozitivul sã fie pe jumãtate realizat fabrica unde era adãpostit a ars. Wilhelm Schickard şi întreaga sa familie au murit de ciumã înainte ca el sã construiascã alt model. Mult mai târziu un mecanic a recreat instrumentul având ca ghid vechile scrisori ale lui Schickard. Dacã aceastã invenţie ar fi fost disponibilă inventatorilor din acea vreme, aceasta ar fi putut schimba în totalitate istoria calculatoarelor.

Cum a fost …

Evoluţia calculatoarelor a decurs încet fără invenţia lui Schickard ca prototip. Mai întâi s-a întâmplat un lucru ciudat cu numerele. În 1600 John Napier, un scoţian, a descoperit un mod de a manipula numerele astfel încât înmulţirea şi împărţirea sã fie reduse la adunarea şi scãderea altor numere. Seriile de numere şi relaţiile dintre ele au fost numite logaritmi. Punând numerele pe cilindri de fildeş (numiti oasele lui Napier) soluţiile la problemele dificile puteau fi gãsite prin potrivirea logaritmilor şi apoi prin adunarea sau scãderea numerelor corespunzãtoare.

Invenţia riglei de calcul a lui Robert Bissaker din 1650 a înlocuit cilindrii de fildeş a lui Napier. Blaise Pascal, matematician francez şi filosof a inventat primul calculator mecanic digital ( Pascalina ) care putea face adunãri şi scãderi cu numerele întregi. Aceastã maşină nu era la fel de avansatã ca maşina creată de Schickard.

Pascalina creatã în 1642 a fost un eşec. În primul rând Pascal era sigurul care o putea repara. În al doilea rând în acea vreme era mai ieftin sã ai oameni care sã facã calculele decât sã cumperi o asemenea maşinărie şi în al treilea rând lucrãtorii se temeau cã vor fi înlocuiţi de Pascalina pierzându-şi astfel slujbele. Totuşi Pascalina a fost folositã pânã când a apãrut calculatorul electronic care a fãcut-o nefolositoare. Pentru contribuţia adusã numele lui Pascal a fost dat unui limbaj de programare.

Mai târziu Gottfried Wilhelm Von Leibniz, matematician german, împreunã cu Sir Issac Newton au inventat calculele şi au creat calculatorul acţionat de roatã cu pedalã. Acest dispozitiv creat în 1673 putea face adunãri, scãderi, înmulţiri şi împărţiri. Roata lui Leibniz era o îmbunătăţire a Pascalinei, totuşi nu era posibil sã se aibã încredere în ea (mai putea greşi), astfel cã nu a fost folositã de prea multã lume. Oricum calculatorul lui Leibniz l-a impresionat pe Peter Cel Mare care a trimis un exemplar împãratului Chinei pentru ca sã îl convingã de tehnologia germanã şi pentru a creşte relaţiile comerciale dintre Est si Vest.

Francezul Joseph Marie Jacquard în anul 1804 a construit o maşină automatã cu cartele perforate care era folositã pentru a ţese cu modele. Invenţia lui Jacquard a arãtat cã datele pot fi stocate pe cartele; cartelele la rândul lor pot fi folosite pentru a crea serii de instrucţiuni. Programarea instrucţiunilor s-a dovedit a fi un lucru foarte important pentru calculatoarele moderne.

În 1822 inventatorul si matematicianul Charles P. Babbage, a conceput o maşină care putea fi folositã în rezolvarea de probleme diferite, maşină care avea o memorie mecanicã în care putea pãstra rezultatele. Royal Astronomical Society l-a încurajat pe Babbage cu garanţii guvernamentale şi astfel calculatorul creat de el devenea mai mare şi mai complex pe mãsurã ce îl revizuia. Garanţiile nu i-au mai fost acordate din anul 1834, dar cu toate acestea Babbage a propus o maşină mult mai complexã. Cu toate cã puterea a şase motoare cu abur care erau necesare sã punã în funcţiune motorul analitic ar fi ocupat lungimea unui teren de fotbal, calculatorul lui Babbage putea calcula logaritmi automat. Datele erau introduse folosind cartele perforate şi maşinăria putea fi programatã sã-şi schimbe metodele de operare. Din pãcate motorul analitic nu a fost construit, dar oricum acest concept a fost predecesorul calculatorului din zilele noastre. Pentru contribuţia sa Babbage a fost numit parintele calculatorului. Babbage avea un partener şi un om de încredere, Augusta Ada, contesa de Lovelace şi fiica poetului Lord Byron.

Doamna Lovelace a înţeles ideile lui Babbage, a recunoscut valoarea ideilor, şi în anul 1840, a scris lucrãri cu caracter ştiinţific care explicau ideile lui Babbage celorlalţi. Ea a fost cea care a sugerat folosirea sistemului binar, în locul celui zecimal, pentru stocarea datelor. Doamna Lovelace este consideratã prima programatoare pentru cã ea a modelat desenul motorului analitic incluzând o repetare automatã a unei serii de calcule. Această procedurã în cerc este foarte importantã pentru programatorii de astãzi. Zece ani mai târziu în anul 1850, George Boole, matematician englez a realizat cã problemele matematice complexe puteau fi rezolvate reducându-le la o serie de rãspunsuri afirmative sau negative.

Sistemul binar cu 1 ca rãspuns pozitiv şi 0 ca rãspuns negativ era o soluţie. Aceastã teorie avea sã stea la baza circuitelor calculatorului.

Doctorul Herman Hollerith a construit prima maşină electromecanicã cu cartele gãurite în 1880. Socrul lui Hollerith care se ocupa de recensãminte, a propus ca maşina sã fie folositã pentru a sorta rezultatele recensãmântului folosind cartele gãurite cu 80 de coloane pe care tot Herman le-a inventat. Folosind această maşinărie Hollerith a obţinut la recensãmântul din 1890 un rezultat de 63.056.000 de oameni într-o treime din timpul care a fost necesar în 1880 pentru a numãra 50.262.000 de oameni. Dupã descoperirea lui Hollerith a fost o pauzã în descoperirile din domeniul calculatoarelor.

Progresul exista, dar nimic spectaculos nu a fost raportat – nimic nu a fost raportat pânã când în anul 1927 la Massachusetts Institute of Tehnology (MIT) Vannevar Bush împreunã cu colaboratorii sãi au creat maşina care putea rezolva ecuaţii simple. Pânã în anul 1931 maşina a fost modificatã şi perfecţionată pentru a rezolva ecuaţii mai complexe. Maşina afişa rezultatele prin rotirea unor săgeţi.

În anul 1940 George Stibitz împreunã cu colegul sãu Samuel Williams au demonstrat cum sã se folosească dispozitivul creat de ei în anul 1937 şi numit Complex Number Calculator pentru a transmite calcule la distanţe de pânã la 250 mile.

La Iowa, în anul 1939, John Atanasoff şi Clifford Berry au colaborat şi au construit calculatorul Atanasoff-Berry. ABC-ul a fost primul calculator electronic, digital care putea fi folosit pentru mai multe scopuri. Deşi putea rezolva simultan ecuaţii algebrice, comunitatea ştiinţifică nu a fost foarte interesatã. Când Atanasoff a contactat compania IBM ( International Business Machines ) pentru a le prezenta maşina, compania a rãspuns cã nu va fi niciodatã interesatã de o maşină electronicã de calcul.

Download Istoria-aparitiei-PC

Posted in Uncategorized | Comments Off

Totul despre discurile optice CD-R/RW, DVD-R/RW

Istoria cd rom ului

Istoria cd-rom-urilor începe în anul 1980 cind marile companii PHILIPS şi SONY au anunţat specificaţii in plus pentru folosirea tehnologiei CD pentru datele de calculator. În 1982 cele doua companii , au anunţat un standard pentru aceste unităţi, care includea formatul de 4.72 inci care a evoluat ctre unităţile de cd rom utilizate în prezent, şi care folosesc aceeaşi tehnologie şi format ca şi cd-urile, care sînt identice ca aspect, dar diferă din punct de vedere al conţinutului informaţional  şi al unităţiilor de hard pentru inregistrare şi redare.

În anii 1990 Phillips a colaborat Coorporaţia japoneză Sony pentru a crea un disc digital versatile (Digital Versatile Disk) care să aibă o capacitatea mai mare de stocare a informaţie decat CD-ul. Alte firme nu au acceptat standardul propus de inginerii de la Phillips şi Sony. Producători DVD-ului au optat totuşi pentru un alt standard şi alianţa Phillips-Sony a acceptat să licenţieze rezultatele cercetărilor consorţiului global.

Ce este CD-ROM-ul

Este un suport de stocare optică numai pentru citire (Compact Disc Read Only Memory) şi face parte din categoria memorilor externe, cu o capacitate de stocare între 650 şi 900 de mb pentru discul de 120mm, şi o capacitate între 158 şi 200 de mb pentru discurile de 80mm.

Cel mai popular este discul de 120mm, folosind aceeaşi tehnologie şi format cu cele mai multe aparaturi elecronice şi calculatoare personale ce folsesc tehnologia cd-rom. Discul de 8mm este mai puţin popular,  dar mulţumită dimensiunilor sale reduse, a cîştigat popularitate în rîndul aparaturiilor care folosec tehnologia digitală audio comprimată, camere de fotografiat digitale sau produse de stocare de date, cum ar fi un reportofon miniatură.

Tehnologia cd-rom ului

Discul este fabricat dintr o foaie de policarbonat, şi  are un diametru de 120mm, grosime 1.2mm şi un orificiu în centru de 15mm. Această foaie de policarbonat este acoperită cu un film metalic, de obicei din aliaj de aluminiu sau care mai poate fi şi din argint sau aur. Acest film metalic este porţiunea de disc pe a cărei suprafaţă datele sînt inscripţionate sub formă de adîncituri microsopice de-a lungul unei piste care se desfăşoară în spirală, de pe care unitatea cd rom citeşte datele. Filmul metalic este apoi acoperit cu un înveliş de plastic care protejează datele de sub suprafaţa sa. Unele discuri mai pot avea  înveliţuri adiţionale care le măresc rezistenţa la zgîrieturii, manevrare şi o suprafaţă optimă pentru imprimare (suprafaţă superioară). Pe partea superioară este de obicei o etichetă, şi toate citirile se vor efectua dinspre faţa inferioară. Cd-rom-urile au o singură faţă activă. Citirea informaţiei se face cu ajutorul unui receptor sau senzor de lumină care sesizează cind lumina reflectată de filmul metalic este puternică, şi cînd este absentă sau difuza. Lumina absentă sau difuză este cauzată de adinciturile (pits) gravate pe filmul metalic, iar reflectarea puternică a luminii indică lipsa gropii, şi se numeşte un cîmp(land). Iar în cazul discurilor cu proprietăţi de scriere şi citire (RW), filmul metalic este înlocuit cu un subsrat de sticlă sau metalic acoperit cu un picment organic fotosensibil, format dintr-un aliaj de argint, indium, antimoniu şi teluriu care au aceleaşi proprietăţi reflective ca şi cd-ul obişnuit. Cînd laserul de inregistrare îcepe să pirograveze datele pe disc încinge substratul acoperit cu pigmentul organic, şi ca urmare a încălziri acestor zone ele reflectă lumina în acelaşi mod ca şi o groapă de pe un disc cu film metalic, chiar dacă acolo nu există nici o groapă, ci numai un punct nereflectorizant de pe disc. Această procedură  de folosire a călduri pentru a crea acele puncte nereflectorizante din disc, se numeşte adesea înregistrare prin ardere a cd-ului.

Tipuri de cd-uri

CD-I, este un compact disc conceput de Philips, destinat  aplicaţiilor multimedia interactive să ruleze pe o consolă(player) ataşat la un televizor.

CD-PHOTO,  este un compact disc conceput de Philips, destinat stocării fotografiilor digitale de înaltă rezoluţie pe cd.

CD-R (recordable) sau ”write-once disc”, fabricat începînd cu anul 1992, este un compact disc ce oferă posibilitatea de scriere o singură dată, şi de mai multe ori citirea datelor de pe cd.

CD-RW (rewritable), fabricat începînd cu anul 1996, este un compact disc al cărei date pot fi şterse şi rescrise de mai multe ori, numai într-o unitate de disc CD-RW.

DVD (digital versatile disc) sînt de fapt tot nişte CD-uri însă cu o densitate mai mare de stocare a datelor, datorită unei zone mai mare de date pe disc  prin îngustarea şi creşterea lungimii spiralei ce conţine adinciturile. DVD-ul oferă capacităţi  mai mari de stocare , adică 4.7 gb la discul de 120mm cu o singură faţă,  şi sa născut datorită nevoii de spaţii de stocare mai mari.

DVD-R (recordable), fabricat începînd cu anul 1997. Oferă aceleaşi posibilităţi de scriere şi citire a datelor de pe disc ca şi cd-r, doar că scrierea şi citirea datelor în cazul dvd-r se fac la viteze mai mici.

DWD-RW fabricat începînd cu anul 1998, deasemenea oferă aceleaşi posibilităţi de ştergere şi rescriere a datelor ca şi discurile CD-RW, la care deasemenea vitezele de ştergere-rescriere a datelor diferă.

Download Istoria_CD

Posted in Hardware | Tagged , , , , , , | Comments Off

Metode de organizare a efectelor de animaţie în Pascal

Principiile didactice sunt teze fundamentale, norme generale care stau la baza proiectării, organizării şi desfăşurării activităţilor de predare – învăţare, în vederea realizării optime a obiectivelor educaţionale. Principiile didactice au caracter general-normativ, sistematic şi dinamic-deschis.

Caracterul general rezultă din faptul că principiile didactice vizează toate componentele procesului de învăţământ, sunt aplicabile permanent în procesul de predare – învăţare la informatică. Principiile didactice au caracter normativ prin funcţia lor, orientativă şi reglatoare, în stabilirea obiectivelor, în structurarea conţinutului, în alegerea formelor de realizare a procesului de predare – învăţare, în alegerea strategiilor didactice prin îmbinarea metodelor, a mijloacelor de instruire şi realizarea evaluării.

Caracterul sistematic rezultă din faptul că principiile didactice sunt sisteme de norme care trebuie aplicate în fiecare forma de activitate didactică. Nerespectarea unui principiu didactic poate conduce la anularea sau atenuarea celorlalte.

Caracterul dinamic deschis al principiilor didactice rezulta din faptul că acestea nu sunt rigide. Numărul principiilor nu este limitat, ele pot multiplica sau integra în principii cu o sfera mai larga. Principiile didactice permit manifestarea creativităţii în proiectarea şi realizarea activităţii instructiv-educative.


§1. Principiul intuiţiei sau unităţii dintre senzorial şi raţional

Principiul intuiţiei exprimă necesitatea obiectelor, fenomenelor şi proceselor prin intermediul simţurilor, care realizează cunoaşterea senzoriala a realităţii, ca punct de plecare şi de uşurare a înregistrării esenţialului realităţii spre cunoaşterea logica, raţională, contribuind la înfăptuirea unităţii dintre senzorial şi raţional.

Principiul intuiţiei a apărut ca un demers legic împotriva învăţării scolastice, învăţării mecanice, pe de rost, împotriva buchiselii. Principiul intuiţiei a corespuns necesităţii psiho-pedagocice a realizării unui învăţământ bazat pe înţelegere, legat de viaţă, realist.

Realizând unitatea dintre cunoaşterea senzoriala şi cea raţională, principiul intuiţiei nu înseamnă deci rămânerea la treapta cunoaşterii senzoriale. El realizează treapta cunoaşterii senzoriale, pentru uşurarea înţelegerii, pentru a ajunge la treapta dificilă, dar de mare importanţă pentru cunoaştere, treapta învăţării logice (a cunoaşterii raţionale), bazată pe studierea elementelor şi conexiunilor abstracte, esenţiale şi generale exprimate, prin noţiuni, concepte, idei, teorii, principii etc. Numai astfel se poate ajunge prin învăţare la însuşirea ştiinţei. Principiul intuiţiei face ca învăţarea să fie mai întâi ca o reflectare în mintea elevilor sub formă de percepţii şi reprezentări. Percepţiile şi reprezentările nu sunt simple imagini (fotografii) globale ale realităţii, ci ele sunt acte psihice de cunoaştere activă, de reflectare cognitivă, care stau la baza realizării proceselor psihice ideatice sub forma noţiunilor, ideilor, teoriilor etc., deci de cunoaştere (învăţare) raţională. În acest context, a intui înseamnă a observa şi a gândi în acelaşi timp.

Principiul intuiţiei se realizează prin îmbinarea materialului didactic intuitiv-natural la scara lor reala, şi de substitute (machete, modele, reprezentări grafice, mijloace audio-vizuale, mijloace logico-matematice etc.).

Pedagogul elveţian Robert Dottrens spunea: „Nu există obiectul, nu trebuie să aibă loc predarea”.

Îmbinarea echilibrată a celor trei componente: imaginea, cuvântul şi elementele logico-matematice reprezintă esenţa intuiţiei pentru o învăţare eficientă.

Prezentarea materialului intuitiv este un mijloc de învăţare eficientă, organizată, dirijată, sistematică, activă, corelată cu interesele şi trebuinţele elevului, elevii nu ştiu să observe, ei trebuie învăţaţi să vadă şi să desprindă din obiecte şi fenomene esenţialul, dar şi specificul particularul. Nu este suficient să priveşti, să mânuieşti, să pipăi, să cântăreşti obiectele pentru a obţine o cunoştinţă ştiinţifică despre realitate, ci este necesar să sesizezi esenţialul prin problematizare. Obiectele nu-l instruiesc singure pe elev, ci profesorul instruieşte cu ajutorul acestora prin orientarea gândirii şi interpretării, prin problematizare, prin emitere de ipoteze. Dacă profesorul nu îndrumă intuiţia elevilor, ei reţin caracterele particulare ale obiectelor (culoare, formă, mărime, mişcare) care le atrag atenţia şi nu sesizează esenţialul, de aceia este necesară intuirea polimodata, dirijată prin cuvânt, sistematizată după un plan, într-o ordine logică. Instruirea nu se reduce la furnizarea imaginilor sau reprezentărilor unor obiecte, evenimente, la înlocuirea „verbalismului cuvântului” cu „verbalismul imaginii”. Nu modelul în sine şi simpla intuire duce la învăţarea cu sens şi are efecte formative, ci acţiunea cu modelul, prin care elevul însuşi descoperă relaţii, principii, legităţi.

Download Grafica

Posted in Pascal, Programming | Tagged , , , , | Comments Off

Tipul de date fişier în Pascal

O temă destul de dificilă din cursul liceal de informatică este tema „Tipuri structurate de date. Tipul fişier (file)”.

Despre necesitatea cunoaşterii şi aplicabilitatea tipului de date fişier ne conving culegerile de probleme la informatică.

Practica arată că elevul trebuie să revină periodic la rezolvarea diferitor probleme cu aplicarea tipului de date fişier. Acest fapt contribuie la dezvoltarea gîndirii analitice, a intuiţiei şi a creativităţii, calităţii necesare pentru studierea ulterioară a informaticii atît la treapta liceală, cît şi în învăţămîntul universitar.

Unii elevi învaţă mai eficient rezolvînd probleme rezolvate. Nu este vorba de memorarea rezolvării (deşi şi acest lucru este util la o anumită etapă de învăţare, nu oricine poate rezolva orice, dar oricine poate învăţa o rezolvare), ci de reluarea rezolvării pe altă cale. În acest scop profesorul poate propune elevilor rezolvarea unor exemple mai dificile, urmate ulterior de discuţii asupra metodelor de rezolvare.

Să nu uităm de sfatul lui G.Polya: „Dacă vreţi să învăţaţi să rezolvaţi probleme, trebuie… să rezolvaţi probleme”.

Teza are drept scop studierea detaliată a temei şi formularea unor metode şi strategii didactice pebtru predarea – învăţarea – evaluarea temei „Tipul de date fişier”.

Lucrarea constă din două capitole:

Capitolul I constă din 9 paragrafe, unde sunt expuse noţiunile teoretice generale despre tipul de date fişier şi anume: clasificarea fişierelor, fişiere cu tip, fişire fără tip, fişiere text, proceduri şi funcţii definite asupra tipului de date fişier.

Capitolul II constă din 5 paragrafe. Acest capitol conţine informaţii referitoare la: curriculum liceal la tema „Tipul de date fişier (file)”, unde sunt prezente numărul de ore (opţional) şi aranjarea lor pentru predare-învăţare; tratarea temei „Tipul de date fişier (file)” în manualul Informatica. Limbajul de programare Pascal. Manual pentru clasele IX-XI de Anatol Gremalschi, Iurie Mocanu şi Ion Spinei; necesitatea utilizării problematizării la lecţiile de informatică. La fel se conţine un şir de probleme de dificultate diferită ce pot fi propuse elevilor pentru antrenament şi consolidarea cunoştinţelor la tema „Tipul de date fişier (file)”. Ultimul paragraf al acestui capitol, şi anume „Sugestii privind evaluarea” aduce cititorului un set de teste de evaluare formativă şi sumativă ce au ca scop determinarea nivelului de cunoştinţe a elevilor, a abilităţilor lor, determinarea erorilor şi posibilitatea lichidării lor.

Prezenta lucrarea are drept scop familiarizarea cititorului cu noţiuni de predare – învăţare – evaluare a temei tipul fişier în liceu. Această lucrare poate fi utilă studenţilor şi profesorilor.

§1. Clasificarea fişierelor

Fişierul este o colecţie organizată de informaţii (date, rezultate, programe sursă, programe direct executabile etc.), dispuse pe unul sau mai multe suporturi externe.

Componentele unui fişier se numesc înregistrări (articole) şi pot avea dimensiune fixă sau variabilă. Numărul de componente dintr-un fişier este variabil, fiind limitat doar de capacitatea de memorare a suportului utilizat. Sfîrşitul unui fişier este uneori marcat printr-o componentă specială (end of file – caracterul ^Z).

Fişierul, în contextul limbajului Pascal, este o structură de date omogenă, formată din componente de acelaşi tip, exceptînd tipul fişier.

Înregistrarea este constituită dintr-o mulţime de valori ale unor caracteristici asociate unui obiect, proces etc., din domeniul aplicaţiei.

Componentele înregistrării asociate diverselor caracteristici sunt denumite cîmpuri de date.

Limbajul Pascall permite utilizarea fişierelor cu înregistrări de lungime fixă (stabilită la momentul prelucrării) şi variabilă (două înregistrări alăturate sunt separate prin marcaje speciale, de exemplu prin caracterele CR/LF – sfîrşit de linie).

Din punct de vedere fizic (al suportului extern), fişierul este o succesiune de octeţi.

Accesul la componentele unui fişier are la bază următorul mecanism: fiecare fişier are un indicator (pointer) al componentei curente, cea accesibilă în acel moment. Pentru fiecare acces la fişier (adică, pentru fiecare operaţie de citire sau scriere), indicatorul avansează de la componenta curentă la următoarea componentă, care devine astfel componenta curentă.

Modul de acces la componente poate fi: secvenţial (accesul la componenta n din fişier trebuie precedat de inspectarea componentelor 0, 1, 2,    , n-1) şi direct sau aleator (poziţionarea se face direct pe componenta respectivă).

Cînd se lucrează cu un fişier, acestuia i se asociază o variabilă tampon avînd tipul de bază al componentelor fişierului. Variabila tampon realizează interfaţa între fişier şi program.

Variabilelor fişier (utilizate în programe, atunci cînd lucram cu fişiere) li se asociază, de obicei, fişiere fizice, aflate pe suport extern şi gestionate de către sistemul de operare. În conţinuare, vom nota cu f variabila fişier utilizată la un moment dat.

Din punct de vedere al limbajului Pascal şi al conţinutului lor, fişierele se împart în două mari categorii:

  • fişiere text, în care toate datele sunt sub formă de caractere ASCII (un caracter/octet). Practic, fişierele text conţin caractere organizate în linii de lungime variabilă, liniile consecutive fiind separate printr-un marcaj de sfîrşit de linie (end of line) reprezentat prin perechea de caractere de control Carriage Return şi Line Feed – CR/LF.
  • fişiere binare, în care toate datele sunt memorate în formă identică cu cea din memoria principală. Practic, fişierele binare sunt fişiere cu componente de tipuri definite de programator.

Fişierele binare se împart, la rîndul lor, în două clase:

  • fişiere cu tip (în care înregistrările au structura şi lungimea fixe, precizate la momentul fiecărei prelucrări);

fişiere fără tip (în care înregistrările sunt blocuri binare de lungime fixă, precizată ca parametru în procedura de deschidere a fişierului; nu se face nici o ipoteză referitoare la structura blocurilor; un bloc este o succesiune de octeţi)

Download Fisiere

Posted in Pascal, Programming | Tagged , , , | Comments Off

Alocarea memoriei în Turbo Pascal

Orice algoritm lucrează cu date (numere întregi, reale, şiruri de caractere etc.). Referitor la acestea, în informatică, s-au cristalizat anumite concepte fundamentale, pe care le voi prezenta în continuare. Definiţie: Printr-un tip de dată  înţelegem o mulţime cu elemente numite valori. De sxemplu:{-32768, -32767,…0,1, …32767} este omulţime de numere întregi. Atunci cînd nu există posibilatea de confuzie, putem nota mulţimea de mai sus astfel: [-32768,32767]. În Turbo Pascal un astfel de tip se numeşte integer şi este predefinit. Pe mulţimea valorilor unui tip se definesc operaţiile asociate tipului. De exemplu, pentru tipul integer se definesc operaţiile de adunare, scădere, înmulţire etc. Pentru fiecare tip se defineşte modul în care se memorează valorile sale. De exemplu, pentru tipul integer valorile se memorizează utilizînd codul complementar şi se folosesc 2 octeţi consecutivi. Pentru a lucra cu date de un anumit tip se folosesc variabile. O variabilă se caracterizează prin: tip (natura datelor şi modul de memorare), nume (prin care aceasta se adresează) şi adresă (număr de ordine al primului octet în care se reţin datele, memoria internă fiind privită ca o succesiune de octeţi numerotaţi). Tipurile de date pot fi simple şi structurate. Limbajele de programare evoluate utilizează din plin tipurile de date. Mai mult, unele din ele permit programului, folosind tipurile existente, să definească noi tipuri de date. Noţiunea de tip de date este strînsă legată de un anumit limbaj de programare. În situaţia în care se renunţă la această legătură, se ajunge la o altă noţiune mult utilizată şi anume cea de structură de date. De exemplu, mulţimea este o structură de date. În limbajul Turbo Pascal există tipul mulţime (set). Alte limbaje (de exemplu C) nu cunosc acest tip. Aceasta nu înseamnă că în C nu vom putea lucra cu mulţimi. Variabilele declarate în secţiunea var a unui program sau subprogram se numesc variabile statice. Numărul variabilelor statice se satabileşte în momentul scrierii programului şi nu poate fi schimbat în timpul execuţiei. Există însă situaţii în care numărul necesar de variabile nu este cunoscut din timp. De exemplu, presupunem că este necesară prelucrarea datelor referitoare la persoanele care formează o listă de aşteptare (o coadă) la o casă de bilete. Lungimea cozii este nedefinită. De fiecare dată cînd apare o persoană nouă, trebuie să se creeze o variabilă de tipul respectiv. După ce persoana pleacă – variabile evine inutilă. Variabilele care sunt create şi eventual distruse în timpul execuţiei programului se numesc variabile dinamice O structură de date este formată din datele propriu-zise şi relaţiile dintre ele. În funcţie de modul de organizare, o structură de date poate fi implicită sau explicită. Tablourile, şirurile de caractere, articolele, fişierele şi mulţimile sunt structuri implicite de date. Relaţiile dintre componentele acestor structuri sînt predefinite şi nemodificabile. De exemplu, toate componentele unui şir de caractere au un nume comun, iar caracterul s[i+1] este succesorul caracterului s[i] în virtutea poziţiei ocupate. Structurile de date se clasifică în două mari categorii: statice şi dinamice. Criteriul de clasificare este dat de modul de alocare a memoriei interne. Întrucît structura tablourilor, şirurilor de caractere, articolelor, mulţimilor, fişierelor nu se modifică în timpul execuţiei oricărul program sau subprogram, structurile respective reprezintă structuri statice de date.

§1. Tabloul

Fie Ani={1,2,….ni} mulţimea primelor ni numere naturale. Fie M=An1 x An2 x…..x Ank produsul cartezian a k astfel de mulţimi. Definiţie: Se numeşte tablou o funcţie f:M→T, unde T este o mulţime oarecare. Numărul k este dimensiunea tabloului. Dacă k=1 tabloul se mai numeşte şi vector. Vectorul are n1 componente. Dacă k=2 tabloul se mai numeşte şi matrice. Matricea are n1xn2 elemente. Majoritatea limbajelor de programare evoluate au implementat tipul tablou (array în Turbo Pascal). Pentru a identifica elementele unui tablou se folosesc indicii. Exemplul 1: Distanţa dintre două mulţimi în plan se consideră distanţa dintre două puncte ale acestor mulţimi, situate cel mai aproape unul de altul. Aflaţi distanţa dintre două mulţimi de puncte date. (pr.38, §5, [1])

Download Alocarea-memoriei

Posted in Pascal, Programming | Tagged , , , , | Comments Off

Modulul Graph în Turbo Pascal

1. Iniţializarea regimului grafic

Placa grafică sau adaptorul de ecran este componenta hard a calculatorului care asigură gestiunea memoriei şi controlul monitorului video. Driver-ul grafic este componenta soft-ului care comandă placa grafică. Placa grafică tratează ecranul în două moduri:

În regimul text fiecare caracter ce apare la ecran este păstrat în memoria calculatorului în doi octeţi, unul cuprinde codul ASCII al caracterului, iar al doilea culorile, iluminarea, culoarea fonului şi clipirea. În regimul grafic memoria ecranului are un cod pentru fiecare pixel prin care se determină culoarea pixelui.

Zona de memorie ecran pentru memorarea unui ecran se numeşte pagină video. Pagina video care apare la un moment dat pe ecran se numeşte pagină vizibilă. Prelucrarea informaţiei grafice în Pascal este susţinută de modulul Graph.

Modulul Graph pune la dispoziţie circa 90 de proceduri şi funcţii păstrate în fişierul graph.tpu. Utilizarea procedurilor şi funcţiilor grafice este posibilă dacă în partea declarativă uses vom declara modulul graph. Fiecare regim grafic are driver-ul său specific. Tabelul  următor conţine lista regimurilor grafice posibile pentru diferite adaptoare grafice. În prima coloniţă sunt indicare  tipurile de drivere, în a doua – numărul de pixeli de pe ecran, în coloniţa a treia este indicată palitra de culori a regimului dat, în ultima coloniţă sunt indicate numărul de pagini video care se pot încărca simultan în memoria videoadaptorului.

Orice program Turbo Pascal ce conţine prelucrarea informaţiei grafice trebuie să cuprindă:

[like url=http://resurse-educationale.uv.ro/]Iniţializarea regimului grafic se relizează prin procedura InitGraph cu formatul:

InitGraph(var GraphDriver:integer; {tipul adaptorului}

var GraphMode:integer; {regimul grafic}

var DriverPath:string); {calea spre driver}

De exemplu:

procedure ini;

var gd, gm:integer;

begin

gd:=detect;

initgraph(gd,gm,’c:\tp\bgi’);

if graphresult<>grok then halt(1);

end;

Download Modulul Graph

Posted in Pascal, Programming | Tagged , , , , , , | Comments Off

Biblioteci în Turbo Pascal

Modulul UNIT  – este o unitate de program, textul căruia se compilează de sinestătător (autonom). Această unitate de program include descrierea constantelor, variabilelor, tipurilor de date utilizate, a procedurilor şi funcţiilor ce vor fi create şi care mai apoi vor putea fi chemate în programul de bază. Însă structura internă a modulului personal este ascunsă (în programul unde se apelează unit-ul) de utilizator.

Structura generală  a unui UNIT

Un modul poate fi despărţit în cîteva compartimente: antetul unit-ului, secţiunea de interfaţă, secţiunea de implementare, secţiunea de iniţializare (ea poate să lipsească).

Antetul unit-ului

Antetul modulului puţin se deosebeşte de antetul programului. În modul în locul cuvîntului rezervat Program se utilizează  cuvîntul rezervat Unit. Tot aici pot fi indicate directivele compilatorului.

La alegerea numelui modulului este necesar de luat în consideraţie următoarea latură specifică: vom ţine cont ca numele unit-ului să nu coincidă cu numele căreiva funcţii sau proceduri standarde, cuvînt rezervar sau numele alttui obiect de programare din interiorul programului. La această cerinţă se mai adaugă încă una: numele unit-ului trebuie să corespundă cu numele fişierului în care se păstrează acest unit. Deaceea numele unit-ului nu trebuie să conţină mai mult de opt simboluri.

Secţiunea de interfaţă

Nou spre deosebire de structura unui program este secţiunea de interfaţă. În acest compartiment se descriu toate constantele, tipurile de date şi variabilele, procedurile şi funcţiile accesibile în acest modul pentru a putea fi utilizate în cadrul altor programe externe. Secţiunea de interfaţă conţine toată informaţia, necesară pentru a putea fi accesată de altă programe, descrisă în modulul dat. Orice altă informaţie despre modul pentru a putea fi utilizat nu este necesară.

În secţiunea de interfaţă   este posibil de a face accesibili pentru utilizare module deja create indicînd numele lor în compartimentul uses. După operatorul uses se declară tipurile de date, vatiabilele ce vor fi utilizate la descrierea procedurilor şi funcţiilor descries în acest modul.

Toate procedurile şi funcţiile ce vor putea fi utilizate mai apoi în alte programe sunt descries în secţiunea de interfaţă indicîndu-se numele lor şi parametrii. Textul ca atare al procedurilor şi funcţiilor va fi mai apoi descries în secţiunea de implementare unde se va mai indica încă o dată numele procedurii sau funcţiei.

În practică este posibil şi cazul cînd secţiunea de interfaţă lipseşte aşa cum este indicat în exemplul leer.pas, ce conţine modulul Leer. Acest modul este foarte simplu şi este pur demonstrative.

unit Leer;

INTERFACE

{Acest compartiment este gol}

IMPLEMENTATION

uses crt;

begin

clrscr;

writeln(‘Salut!’)

end.

Secţiunea de implementare

Secţiunea de implementare este compartimentul modulului în care se scrie textul propriu zis al procedurilor şi funcţiilor descries în secţiunea de interfaţă. Procedurile şi funcţiile se descriu exact aşa cum ne-am obişnuit să o facem în programele obişnuite. Tipurile de date şi structura lor sunt inaccesibile pentru cealaltă pasrte a unit-ului şi sunt utilizate numai în secţiunea de implementare. La fel ca şi secţiunea de interfaţă secţiunea de implementare poate să fie vidă.

Secţiunea de iniţializare

Secţiunea de iniţializare reprezintă blocul principal al modulului. Instrucţiunile Indicate în acest bloc se îndeplinesc primele, adică mai întîi se îndeplinesc instrucţiunile din secţiunea de iniţializare a modulului, apoi instrucţiunile ce se conţin între begin şi end al programului Pascal ce utilizează modulul în cauză. De exemplu programul de mai jos exemplu.pas va fi realizat în felul următor: unit-ul Leer.tpu în secţiunea de implementare conţine instrucţiunile clrscr – curăţirea ecranului, apoi writeln(‘Salut!’) – afişează la ecran cuvîntul  Salut după care se va realiza instrucţiunea writeln(‘Program demonstrativ’).

program exemplu;

uses Leer;

begin

writeln(‘Program demonstrativ’)

end.

Pentru a putea utiliza acest unit în alte programe Pascal este necesar de a salva acest unit cu nume_unit.pas, apoi se va compila unit-ul tastînd [F9] (Compile) iar pentru opţiunea Destination se va instala valoarea Disk. În urma acestei operaţii pe disc se va forma fişierul nume_unit.tpu. dacă ve-ţi tasta [Ctrl+F9] atunci după compilare va apărea informaţia Can not run a unit care ne informează că unit-ul nou creat nu se poate realiza desinestătător.

Download Biblioteci in Pascal

Posted in Pascal, Programming | Tagged , , , , | Comments Off

Paralab. Описание параллельных методов решения сложных вычислительных задач

1.1. Сортировка данных

Общая схема параллельных вычислений при сортировке данных (см. раздел 3 пособия) состоит в разделении исходного упорядочиваемого набора на блоки и их распределения между процессорами, в ходе сортировки блоки пересылаются между процессорами и содержащиеся в них данные сравниваются между собой для упорядочения. Результирующий (отсортированный) набор, как правило, также разделен между процессорами; при этом для систематизации такого разделения для процессоров вводится та или иная система последовательной нумерации и обычно требуется, чтобы при завершении сортировки значения, располагаемые на процессорах с меньшими номерами, не превышали значений процессоров с большими номерами.

В системе ПараЛаб в качестве методов упорядочения данных представлены пузырьковая сортировка, сортировка Шелла, быстрая сортировка.

1.1.1. Алгоритм пузырьковой сортировки

Напомним кратко общую схему данного метода упорядочения данных [1]. Алгоритм основан на применении базовой операции “сравнить и переставить” (compare-exchange), состоящей в сравнении той или иной пары значений из сортируемого набора данных и перестановки этих значений, если их порядок не соответствует условиям сортировки:

// операция “сравнить и переставить”

if ( a[i] > a[j] ) {

temp = a[i];

a[i] = a[j];

a[j] = temp;

}

На первой итерации алгоритма осуществляется последовательное сравнение всех соседних элементов; в результате прохода по упорядочиваемому набору данных в последнем (верхнем) элементе оказывается максимальное значение (“всплывание пузырька”); далее для продолжения сортировки этот уже упорядоченный элемент не рассматривается и действия алгоритма повторяются:

// пузырьковая сортировка

for ( i=1; i<n; i++ ){

for ( j=0; j<n-i; j++ )

<сравнить и переставить элементы (a[j],a[j+1])>

}

Алгоритм пузырьковой сортировки в прямом виде достаточно сложен для распараллеливания: сравнение пар соседних элементов происходит строго последовательно. Для организации параллельных вычислений обычно используется модификация алгоритма пузырьковой сортировки – метод чет-нечетной перестановки [23]. Суть модификации состоит в том, что в алгоритм сортировки вводятся два разных правила выполнения итераций метода – в зависимости от четности или нечетности номера итерации сортировки для обработки выбираются элементы с четными или нечетными индексами соответственно, сравнение выделяемых значений всегда осуществляется с их правыми соседними элементами, т.е. на всех нечетных итерациях сравниваются пары:

(a1, a2), (a3, a4),…, (an-1, an) (при четном n),

на четных итерациях обрабатываются элементы

(a2, a3), (a4, a5),…, (an-2, an-1) (при нечетном n).

После n-кратного повторения подобных итераций сортировки исходный набор данных оказывается упорядоченным.

Параллельное обобщение этого алгоритма не вызывает затруднений, так как сравнение элементов в парах происходит независимо и может выполняться одновременно. Сначала рассмотрим схему вычислений, когда на каждый процессор приходится один элемент исходного массива. Предположим, что процессоры соединены  в кольцо и элементы ai расположены на процессорах pi (i=1, 2,…, n). Тогда сравнение пары значений ai и ai+1 1≤ i <n, располагаемых на процессорах Pi и Pi+1 соответственно, можно организовать следующим образом:

- выполнить взаимообмен имеющихся на процессорах Pi и Pi+1 значений (с сохранением на этих процессорах исходных элементов);

- сравнить на каждом процессоре Pi и Pi+1 получившиеся одинаковые пары значений ai и ai+1; результаты сравнения используются для разделения данных между процессорами – на одном процессоре (например, Pi) остается меньший элемент, другой процессор (т.е Pi+1) запоминает для дальней обработки большее значение пары

ai =min(ai , ai+1 ),    ai+1 =max(ai , ai+1).

Рассмотренная параллельная схема может быть надлежащим образом адаптирована и для случая p<n, когда количество процессоров является меньшим числа упорядочиваемых значений. В данной ситуации каждый процессор будет содержать уже не единственное значение, а часть (блок размера n/p) сортируемого набора данных. Эти блоки обычно упорядочиваются в самом начале сортировки на каждом процессоре в отдельности при помощи какого-либо быстрого алгоритма (предварительная стадия параллельной сортировки). Далее, следуя схеме одноэлементного сравнения, взаимодействие пары процессоров Pi и Pi+1 для совместного упорядочения содержимого блоков Ai и Ai+1 и может быть осуществлено следующим образом:

- выполнить взаимообмен блоков между процессорами Pi и Pi+1;

- объединить блоки Ai и Ai+1 на каждом процессоре в один отсортированный блок двойного размера (при исходной упорядоченности блоков и процедура их объединения сводится к быстрой операции слияния упорядоченных наборов данных);

- разделить полученный двойной блок на две равные части и оставить одну из этих частей (например, с меньшими значениями данных) на процессоре Pi, а другую часть (с большими значениями соответственно) – на процессоре Pi+1.

Следует отметить, что сформированные в результате такой процедуры блоки на процессорах Pi и Pi+1 совпадают по размеру с исходными блоками Ai и Ai+1 и все значения, расположенные на процессоре Pi, являются меньшими значений на процессоре Pi+1.

Рассмотренная процедура обычно именуется в литературе как операция “сравнить и разделить” (compare-split). Для пояснения такого параллельного способа сортировки на рис. 1 приведен пример упорядочения данных при n=8, p=4 (т.е. блок значений на каждом процессоре содержит n/p =2 элементов). В первом столбце таблицы приводится номер и тип итерации метода, перечисляются пары процессоров, для которых параллельно выполняется операция “сравнить и разделить”; взаимодействующие пары процессоров выделены в таблице двойной рамкой. Для каждого шага сортировки показано состояние упорядочиваемого набора данных до и после выполнения итерации.

Вычислительная трудоемкость алгоритма определяется выражением:

Tp  =6 (n/p)2 +2n

Первая часть выражения определяет сложность начальной сортировки блоков с использованием алгоритма пузырьковой сортировки. Вторая часть отражает суммарную сложность всех итераций алгоритма чет-нечетной перестановки блоков (для слияния двух упорядоченных блоков размера n/p необходимо 2(n/p) операций).

Download Lab_3

Posted in Paralab, Paralel programming, Programming | Tagged , , , | Comments Off

Paralab. Постановка вычислительной задачи и выбор параллельного метода решения

Для параллельного решения тех или иных вычислительных задач процесс вычислений должен быть представлен в виде набора независимых вычислительных процедур, допускающих выполнение на независимых процессорах.

Общая схема организации таких вычислений может быть представлена следующим образом:

  • разделение процесса вычислений на части, которые могут быть выполнены одновременно;
  • распределение вычислений по процессорам;
  • обеспечение взаимодействия параллельно выполняемых вычислений.

Возможные способы получения методов параллельных вычислений:

  • разработка новых параллельных алгоритмов;
  • распараллеливание последовательных алгоритмов.

Условия эффективности параллельных алгоритмов:

  • равномерная загрузка процессоров (отсутствие простоев);
  • низкая интенсивность взаимодействия процессоров (независимость).

В системе ПараЛаб реализованы широко применяемые параллельные алгоритмы для решения ряда сложных вычислительных задач из разных областей научно-технических приложений: алгоритмы сортировки данных, матричного умножения и обработки графов.

Выбор задачи.

Для выбора задачи из числа реализованных в системе выберите пункт меню Задача и выделите левой клавишей мыши одну из строк: Сортировка, Матричное умножение, Обработка графов. Выбранная задача станет текущей в активном окне.

Download Lab_2

Posted in Paralab, Paralel programming, Programming | Tagged , , | Comments Off

ПАРАЛАБ ПРОГРАММНАЯ СИСТЕМА ДЛЯ ИЗУЧЕНИЯ И ИССЛЕДОВАНИЯ МЕТОДОВ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙПАРАЛАБ ПРОГРАММНАЯ СИСТЕМА ДЛЯ ИЗУЧЕНИЯ И ИССЛЕДОВАНИЯ МЕТОДОВ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ

Программная система Параллельная Лаборатория (сокращенное наименование ПараЛаб) обеспечивает возможность проведения вычислительных экспериментов с целью изучения и исследования параллельных алгоритмов решения сложных вычислительных задач. Система может быть использована для организации лабораторного практикума по различным учебным курсам в области параллельного программирования, в рамках которого обеспечивается возможность

• моделирования многопроцессорных вычислительных систем с различной топологией сети передачи данных;

• получения визуального представления о вычислительных процессах и операциях передачи данных, происходящих при параллельном решении разных вычислительных задач;

• построения оценок эффективности изучаемых методов параллельных вычислений.

Проведение такого практикума может быть организовано на “обычных” однопроцессорных компьютерах, работающих под управлением операционных систем MS Windows 2000 или MS Windows XP (режим многозадачной имитации параллельных вычислений). Кроме режима имитации, в системе ПараЛаб обеспечивается удаленный доступ к имеющейся многопроцессорной вычислительной системе для выполнения экспериментов в режиме “настоящих” параллельных вычислений для сопоставления результатов имитации и реальных расчетов.

В целом система ПараЛаб представляет собой интегрированную среду для изучения и исследования параллельных алгоритмов решения сложных вычислительных задач. Широкий набор имеющихся средств визуализации процесса выполнения эксперимента и анализа полученных результатов позволяет изучить эффективность использования тех или иных алгоритмов на разных вычислительных системах, сделать выводы о масштабируемости алгоритмов и определить возможное ускорение процесса параллельных вычислений.

Реализуемые системой ПараЛаб процессы изучения и исследований ориентированы на активное освоение основных теоретических положений и способствуют формированию у пользователей своих собственных представлений о моделях и методах параллельных вычислений путем наблюдения, сравнения и сопоставления широкого набора различных визуальных графических форм, демонстрируемых в ходе выполнения вычислительного эксперимента.

Возможности системы. ПараЛаб – программный комплекс, который позволяет проводить как реальные параллельные вычисления на многопроцессорной вычислительной системе, так и имитировать такие эксперименты на одном последовательном компьютере с визуализацией процесса решения сложной вычислительной задачи.

При проведении имитационных экспериментов ПараЛаб предоставляет возможность для пользователя:

• определить топологию параллельной вычислительной системы для проведения экспериментов, задать число процессоров в этой топологии, установить производительность процессоров, выбрать характеристики коммуникационной среды и способ коммуникации;

• осуществить постановку вычислительной задачи, для которой в составе системы ПараЛаб имеются реализованные параллельные алгоритмы решения, выполнить задание параметров задачи;

• выбрать параллельный метод для решения выбранной задачи;

• установить параметры визуализации для выбора желаемого темпа демонстрации, способа отображения пересылаемых между процессорами данных, степени детальности визуализации выполняемых параллельных вычислений;

• выполнить эксперимент для параллельного решения выбранной задачи; при этом в системе ПараЛаб может быть сформировано несколько различных заданий для проведения экспериментов с отличающимися типами многопроцессорных систем, задач или методов параллельных вычислений, для которых выполнение эксперимента может происходить одновременно (в режиме разделения времени); одновременное выполнение эксперимента для нескольких заданий позволяет наглядно сравнивать динамику решения задачи различными методами, на разных топологиях, с разными параметрами исходной задачи. При выполнении серии экспериментов, требующих длительных вычислений, в системе имеется возможность их проведения в автоматическом режиме с запоминанием результатов в журнале вычислений [1-3].

Для реальных экспериментов на многопроцессорных вычислительных системах зависимости строятся по набору результатов проведенных вычислительных экспериментов. Любой из проведенных ранее экспериментов может быть восстановлен для повторного проведения. Кроме того, обеспечена возможность ведения журнала экспериментов с записью туда постановки задачи, параметров вычислительной системы и полученных результатов.

Реализованные таким образом процессы изучения и исследований позволят освоить теоретические положения и помогут формированию представлений о методах построения параллельных алгоритмов, ориентированных на решение конкретных прикладных задач.

Downlaod Lab_1

Posted in Paralab, Paralel programming, Programming | Tagged , , , , | Comments Off