luni, 31 ianuarie 2011

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

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

Auto Draft

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

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

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

duminică, 30 ianuarie 2011

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

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

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

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

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



  • распределение вычислений по процессорам;



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


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

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



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


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

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



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


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

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


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

Download Lab_2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Downlaod Lab_1

Web-site pentru afacerea ta pe Internet

Epoca de pionierat a Internetului s-a terminat. In prezent asistam la inceputul unei revolutii in modul de a face afaceri la scara globala, 24 de ore din 24. Afacerile online ( e-business ), comertul electronic, magazinele electronice, etc. au devenit deja termeni consacrati in lumea financiara si bancara. Dupa un raport al Forrester Research vanzarile online au crescut de la 300 milioane USD in 1995, la peste 6 miliarde USD in 2000 si se asteapta sa depaseasca cifra de 90 miliarde USD in 2005. In ultimul deceniu, Internetul a evoluat intr-o unealta formidabila avand un impact major in toate aspectele vietii. La fiecare jumatate de an apar schimbari asa de importante incat este imposibil de prevazut unde se va ajunge in urmatorii 10 ani. Conform unor statistici, utilizatorul tipic de Internet este american (84%), alb (87%), vorbitor de limba engleza (93%), in varsta de 35 de ani, educat si avand un salariu bun. Astazi, din ce in ce mai multe firme si chiar persoane particulare au o pagina web. Pe Internet, se gasesc la dispozitia celor interesati toate mijloacele necesare pentru crearea de site-uri web. Se pot realiza atit site-uri simple, avand cateva pagini, cit si site-uri deosebit de complexe, de sute de pagini si care inglobeaza ultimele tehnologii in domeniul: Flash, Shockwave, Java, Javascript, etc. La momentul actual exista din ce in ce mai multe firme care se ocupa cu webdesign, dar preturile cerute pentru realizarea unei pagini web sunt destul de mari. Web-ul astazi, ca si cel de ieri si cel de maine se afla intr-o continua transformare si metamorfoza care pe cei mai multi fie ii lasa rece fie ii ameteste si ii descurajeaza in incercarea de a intelege mai mult. Scopul lucrarii date este de a-l pune in actualitate pe omul “studioso” cu posibilitatile oferite de internet la accesarea informatie si utilizarea ulterioara a acesteia in scopuri proprii. De asemenia, imi propun ca prin lucrarea data persoana fizica sa obtina o idee si informatie mai larga privind posibilitatile proprii de promovare personala si a unei afaceri prin intermediul internetului utilizind web-siturile. In cadrul primului capitol voi demonstra, pe cit e posibil, ca E-afacerile ocupa un segment important in piata afacerilor globale. In primul capitol voi prezenta prin intermediul unor exemple eficacitatea utilizarii internetului prin demonstrarea posibilitatilor largite ale E-learningului, care dupa cum se pare a avut un impact neastptat de mare asupra societatii contemporane. De asemeni voi aduce exemple ale utilizarii Internetului in realizarea unei afacere precum si utilizarea acestuia drept sursa principala de realizare ale bunurilor unui agent economic. Modalitatea de afisare a informatiilor pe internet are loc in mare parte prin intermediul Web-Siturilor, astfel ca in cadrul capitolului doi ma voi opri in mod special asupra acestora. O atentie deosebita o voi acorda clasificarii acestora din diferite puncte de vedere. Ulterior in acest capitol voi atrage atentia asupra principiilor de administrare a afacerilor pe internet. Datorita faptului ca aceasta lucrare va fi concentrata asupra eficientei economice a sit-urilor web, voi analiza unele modele business de sit-uri, oprindu-ma in mod special la modelul publicitar, cel de sustinere a unor afaceri existente precum si modele de lansare a unor noi afaceri cu toate efectele pozitive ulterioare lansarii acestuia, desigur in cazul unei lansari de succes. De asemeni voi prezenta perspectivele generale ale acestor modele de afaceri precum si pe zone geografice concrete, aducind drept exemplu dezvoltzarea in ultimii ani. Dupa ce voi da o explicatie privind tipurile existente ale web-sit-urilor si posibilitatile de utilizare ale acestora, ulterior ma voi opri asupra crearii in sine a acestuia, iar mai amanuntit asupra etapelor de creare a site-ului web, dat fiind importanta cu care trebuie tratat acest proces la fiecare din etapele crearii lui. Am structurat aceest capitol in patru parti care reprezinta, dupa parerea mea, etape absolut obligatorii in realizarea unui site-web care sa atraga vizitatorii. In literatura de specialitate sau pe siturile care furnizeaza informatii despre webdesign probabil aceste etape, precum si pasii necesari pentru parcurgerea lor, vor fi denumite altfel. Din considerente proprii de machetare a lucrarii si pentru a fi pe cit posibil cit mai concisa eu am gasit aceste denumiri. Poate ele nu sunt cele mai sugestive, dar intelegerea si parcurgerea lor in totalitate sunt esentiale daca dorim sa obtinem o audienta maxima pentru site.


1.Economia digitala si impactul ei asupra societatii
Utilizarea larga a tehnologiilor informatiei si comunicatiilor si progresul catre

Societatea Informationala asigura cresterea economica in conditii de protectie

sporita a mediului, accelerand reducerea consumului fizic in favoarea valorificarii

informatiei si a cunoasterii, deplasarea centrului de greutate de la investitii in

mijloacele fixe la investitii in capitalul uman. In acest mod,

Societatea Informationala integreaza si obiectivele dezvoltarii durabile,

bazata pe dreptate sociala si egalitatea sanselor, libertate, diversitate

culturala si dezvoltare inovativa, protectie ecologica, restructurarea industriei

si a mediului de afaceri.

Schimbarile majore din ultimii ani – cresterea exponentiala a comunicatiilor mobile

si a numarului utilizatorilor de Internet, contributia sectorului TIC (tehnologiile

informatiei si comunicatiilor) la cresterea economica si la crearea de locuri de munca,

restructurarea companiilor si a business-ului in general pentru a beneficia mai eficient

de noile tehnologii, dezvoltarea accelerata a comertului electronic – sustin tranzitia de

la era industriala la cea post - industriala.

Noile tehnologii digitale fac accesul, stocarea si transmiterea informatiei din ce in

ce mai facile si mai accesibile. Dispunand de informatia digitala, aceasta poate fi

transformata in noi valori economice si sociale, creand imense oportunitati pentru

dezvoltarea de noi produse si servicii. Informatia devine resursa-cheie pentru economia digitala.

Notiunea de “noua economie” (economia digitala) se refera in special la transformarile

actuale ale activitatilor economice ca rezultat al utilizarii tehnologiilor digitale,

care asigura accesul, prelucrarea si stocarea informatiei intr-o maniera mai ieftina

si mai facila. Noua economie este caracterizata de intensificarea inglobarii cunoasterii

in noile produse si servicii, cresterea importantei invatarii si a inovarii, a

globalizarii si a dezvoltarii durabile. Volumul enorm al informatiilor schimba modul

de functionare a pietelor, facand posibile restructurarea intreprinderilor si aparitia

de noi oportunitati pentru crearea de valoare prin exploatarea informatiilor disponibile.

In prezent, exista ample dezbateri in mass-media internationala si in mediile politice

asupra intrebarii daca aceste modificari sunt suficient de radicale pentru a merita

eticheta de “noua economie”. La originea acestor dezbateri stau performantele

exceptionale ale economiei americane: 8 ani de crestere continua, cresterea anuala

de peste 4% in ultimii ani, inflatia controlata sub 2%, somajul sub 5%.

Construirea noului model de societate ridica probleme socio-politice majore - atat

la scara nationala cat si internationala - de atenuare a fenomenului de "digital

divide" (excludere de la beneficiile noilor tehnologii a unor categorii sociale

si a unor regiuni/zone geografice) si de coeziune sociala, de conservare si promovare

a culturii specifice fiecarei natiuni si comunitati locale, de protectie a cetateanului

si consumatorului. Solutionarea acestor probleme nu se poate realiza decat printr-un

dialog larg intre autoritatile guvernamentale, reprezentantii mediului de afaceri, ai

mediului academic si societatea civila.

Download Web site pentru afacere

Programe rezolvate în Pascal

Probelma 1. Creaţi un program care afişează următoarea funcţie.



Program P2.1;

uses crt;

var i,n,s : integer;

f : boolean;

begin

clrscr;

repeat

write('Introduceţi un număr natural n=');

readln(n);

until n>2;

if n mod 2=0 then f:=false else f:=true;

write('s=');

for i:=1 to n-2 do

if(not f) and (i mod 2 =0)then write('*',i)

else

if f and (i mod 2<>0)then write('*',i);

writeln('*',n);

readkey;

end.





Se dă un număr natural n. Verificaţi daca acest număr este prim sau nu.





Program P2.2;

uses crt;

var i,n,f : integer;

begin

clrscr;

repeat

write('Introduceţi un număr natural n=');

readln(n);

until n>2;

f:=0;

for i:=2 to n div 2 do

if n mod i=0 then f:=1;

if f=0 then

writeln('Numărul',n:6,' este prim')

else

writeln('Numărul',n:6,' nu este prim');

readkey;

end.

Este dat intervalul numerelor naturale de la n pina la m. Determinati toate numerele naturale din acest interval.



Program P2.3;

uses crt;

var i,n,f,j,r,m : integer;

begin

clrscr;

repeat

write('Introduceţi limita de jos a intervalului n=');

read(n);

write('Introduceţi limita de sus a intervalului m=');

readln(m);

until (n>0) and(m>0) and(n<m);

writeln('Introduceţi intervalul de la',n:6,'pina la',m:6');

r:=0;

for j:=n to m do

begin

f:=0;

for i:=2 to j div 2 do

if j mod i=0 then f:=1;

if f=0 then

begin r:=1;

writeln('Numărul',j:6,' este prim')

end;

end;

if r=0 then writeln('Numărul nu este prim');

readkey;

end.



Se da un număr natural n. Determinaţi toate numerele prime, inclusiv n.



Program P2.4;

uses crt;

var i,n,f,j,r,m : integer;

begin

clrscr;

repeat

write('Introduceţi un număr natural n=');

readln(n);

until n>0;

writeln('Introduceţi intervalul de la 1 pînă la',n:6');

r:=0;

for j:=1 to n do

begin

f:=0;

for i:=2 to j div 2 do

if j mod i=0 then f:=1;

if f=0 then

begin r:=1;

writeln('Numarul',j:6,' este prim')

end;

end;

if r=0 then writeln('Numărul nu este prim');

readkey;

end.

Introduceţi doua numere naturale m si n. Determinaţi împărţitorul lor comun NOD.



Program p2_5;

uses crt;

var i,m,n,k,nod:integer;

begin

clrscr;

repeat

write('Introduceţi numărul natural n=');

readln(n);

write('Introduceţi numărul natural m=');

readln(m);

until (n>0) and (m>0);

if n>m then k:=m else k:=n;

for i:=1 to k do

if (n mod i=0) and (m mod i=0) then nod:=i;

writeln('Împărţitorul numărului comun ',n, 'şi', m,

'nod=',nod);

readkey;

end.

Tema 3:



Sunt date următoarele n numerele naturale. Găsiţi suma tuturor numerelor naturale negative.





Program P3.1;

uses crt;

var n,x,sum,i : integer;

begin

clrscr;

repeat

write('Introduceţi lungimea următoarelor numere n=');

readln(n);

until n>0;

sum:=0;

for i:=1 to n do

begin

writeln('introdu x=');

readln(x);

if x<0 then sum:=sum+x;

end;

if sum=0 then writeln('Numărul negativ nu exisţă')

else

writeln('Suma numerelor negative este sum=',sum);

end.

Sunt date următoarele n numere naturale. Găsiţi numărul maximal.

Program P3.2;

uses crt;

var n,x,max,i : integer;

begin

clrscr;

repeat

write('Introduceţi lungimea următoarelor numere n=');

readln(n);

until n>0;

writeln('introdu x=');

readln(x);

max:=x;

for i:=2 to n do

begin

writeln('introdu x=');

readln(x);

if (x>max) then max:=x;

end;

writeln('Numărul maximal este max=',max);

end.

Download probleme rezolvate Pascal

Limbajul Pascal. Stive. Cozi.

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 vom prezenta în continuare.

Printr-un tip de dată  înţelegem o mulţime cu elemente numite valori.

Exemplu:{-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]. Un element al acestei mulţimi este 7 (valoarea 7). În Turbo Pascal un astfel de tip se numeşte integer. Şi este predefinit (este cunoscut de limbaj, nu trebuie definit de programator).

Pe mulţimea valorilor unui tip se definesc operaţiile asociate tipului.

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 valorile sale.

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).

Tipuri de date pot fi simple (mulţimile care alcătuiesc nu sunt rezultate ca produs cartezian a altor mulţimi) şi stucturate în caz contrar. Exemplu:tipul integer este simplu, iar tipul record este structurat.

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. Limbajul Turbo Pascal este un exemplu în acest sens.

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.

Exemplu: Mulţimea este o structură de date (după cum vom arăta). Î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. Sarcina noastră este să înţelegem structura de date numită mulţime şi să o implementăm în orice limbaj de programare dorim.

Un curs de algoritmi trebuie să fie independenţi de orice limbaj. Fapt că în aceasta lucrare algoritmii se implementează în Turbo Pascal nu înseamnă că ei pot fi folosiţi numai în acest limbaj. Din acest motiv, orice curs de algoritmi va utiliza noţiunea de structură de date.

Download Limbajul Pascal Stive Cozi

vineri, 28 ianuarie 2011

Solr tutorial

Please run the browser showing this tutorial and the Solr server on the same machine so tutorial links will correctly point to your Solr server.

Begin by unziping the Solr release and changing your working directory to be the "example" directory. (Note that the base directory name may vary with the version of Solr downloaded.) For example, with a shell in UNIX, Cygwin, or MacOS:
user:~solr$ ls
solr-nightly.zip
user:~solr$ unzip -q solr-nightly.zip
user:~solr$ cd solr-nightly/example/

Solr can run in any Java Servlet Container of your choice, but to simplify this tutorial, the example index includes a small installation of Jetty.

To launch Jetty with the Solr WAR, and the example configs, just run the start.jar ...
user:~/solr/example$ java -jar start.jar
2009-10-23 16:42:53.816::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2009-10-23 16:42:53.907::INFO: jetty-6.1.3

...

Oct 23, 2009 4:41:56 PM org.apache.solr.core.SolrCore registerSearcher
INFO: [] Registered new searcher Searcher@7c3885 main

This will start up the Jetty application server on port 8983, and use your terminal to display the logging information from Solr.

You can see that the Solr is running by loading http://localhost:8983/solr/admin/ in your web browser. This is the main starting point for Administering Solr.

http://lucene.apache.org/solr/tutorial.html

miercuri, 26 ianuarie 2011

Auto Draft

Programarea Web cu Microsoft ASP.NET

ASP.NET este un set de tehnologii care ne permit crearea de aplicaţii web. Este evoluţia

de la Microsoft Active Server Pages (ASP), dar beneficiază de suportul platformei de

dezvoltare Microsoft .NET.

Una dintre cele mai importante calităţi ale ASP.NET este timpul redus necesar dezvoltării

aplicaţiilor web. Atât tehnologia în sine, cât şi uneltele de dezvoltare de aplicaţii web de la

Microsoft (cum ar fi Visual Web Developer Express - VWD) – reduc considerabil timpul de

dezvoltare al aplicaţiilor web faţă de alte tehnologii – prin simplitatea unui limbaj de

programare ”managed” de genul C# sau Visual Basic .NET, prin colecţia bogată de biblioteci

de clase şi controale .NET care oferă foarte multă funcţionalitate ”out of the box”, prin

orientarea pe construirea de aplicaţii web a mediului de dezvoltare VWD.

Chiar dacă ASP.NET este gândit pentru a dezvolta aplicaţii web foarte complexe – prin

faptul că se bazează pe .NET, prin faptul că se insistă pe un model de dezvoltare OOP,

respectiv pe separarea interfeţei de logica aplicaţiei – totuşi, este extrem de simplu ca

folosind ASP.NET să dezvoltăm aplicaţii mici, de genul magazinelor online, al aplicaţiilor care

sunt pur şi simplu un ”front-end” pentru o bază de date, sau al site-urilor personale.

ASP.NET cuprinde toate tehnologiile necesare pentru a dezvolta o aplicaţie web, scriind

cantitatea minimă de cod. Limbajele de programare care pot fi utilizate pentru a crea aplicaţii

ASP.NET sunt cele suportate de platforma .NET – cum sunt Visual Basic .NET şi C#, iar o

altă caracteristica importanta a acestor limbaje (înafara faptului că sunt ”managed”) este ca

au fost create având în vedere paradigma programării orientată pe obiecte. Totul din .NET, şi

evident din ASP.NET, este un obiect.

Evident, orice site / aplicaţie web trebuie să fie găzduită pe un server pentru a putea fi

utilizată. Chiar dacă în capitolele viitoare vom discuta mai mult despre instalarea aplicaţiilor

ASP.NET, aici aş dori să prezint pe scurt variantele de găzduire.

Pentru o persoană / companie care doreşte să beneficieze de o aplicaţie ASP.NET, după

ce a fost dezvoltată, trebuie instalată undeva. Presupunând că ea a fost dezvoltată pentru

.NET, aplicaţia are nevoie de un server web IIS (internet Informations Services).