1 / 21

3 Laborategiak: Programazio Modularra Problemak zatitu Azpi-algoritmoak berrerabili

3 Laborategiak: Programazio Modularra Problemak zatitu Azpi-algoritmoak berrerabili. Posizioa : Karaktere kate batean karaktere baten lehen posizioa bueltatzen duen azpiprograma. Zehaztapena: Aurrebaldintza: Zer da: erak: karaktere kateari erakuslea kar: aurkitu beharreko karakterea

tacita
Download Presentation

3 Laborategiak: Programazio Modularra Problemak zatitu Azpi-algoritmoak berrerabili

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3 Laborategiak: • Programazio Modularra • Problemak zatitu • Azpi-algoritmoak berrerabili

  2. Posizioa : Karaktere kate batean karaktere baten lehen posizioa bueltatzen duen azpiprograma • Zehaztapena: • Aurrebaldintza: • Zer da: • erak: karaktere kateari erakuslea • kar: aurkitu beharreko karakterea • topea: gehienez zenbat posizio bilatu • Mota: • karakterea *erak; • karakterea kar; • osoa topea; topea ЄZ • Baldintza indibidualak: topea>=0 • Erlazioak:

  3. Posizioa : Karaktere kate batean karaktere baten lehen posizioa bueltatzen duen azpiprograma • Zehaztapena: • Ondorengo baldintza: • Zer da: Em: zein posiziotan dagoen kar *erak apuntatzen duen karaktere katean • Mota: Em ЄZ • Baldintza indibidualak: Em>=-1 • Erlazioak: • Existitzen bada i balioa, betetzen duena *(erak+i) = = kar eta i >= 0 eta i <= Topea eta beste edozein j balioak betetzen badu 0 <= j < i eta *(erak+i) ! = kar)  Em = = i • Bestela  Em = = -1

  4. osoa Posizioa (karakterea *erak, karakterea kar, osoa topea) HASIERA osoa i=0, Em= -1; topea >= i && *(erak+i) != kar ez bai topea >= i ez bai i = i + 1; Em = i; Em = -1; ITZULI Em; BUKAERA

  5. ZENBATU KARAKTERE BAT POSIZIOA azpialgoritmoari dei eginez, zenbatu zenbat aldiz agertzen den erabiltzaileak adierazitako esaldi batean berak esandako karakterea. Sasikodean

  6. ZENBATU KARAKTERE BAT • Zehaztapena: • Aurrebaldintza: • Zer da: • Es: esaldia • Letra: bilatu beharreko karakterea • Mota: • karakterea Es[100]; • karakterea Letra; • Baldintza indibidualak: Es hutsa ez izatea (luzera(Es)>0) • Erlazioak:

  7. ZENBATU KARAKTERE BAT • Zehaztapena: • Ondorengo baldintza: • Zer da: Kont: Es esaldian Letra karakterea zenbat aldiz agertzen den • Mota: Kont ЄZ • Baldintza indibidualak: Kont>=0 • Erlazioak:

  8. HASIERA karakterea Es [100], Letra; osoa Kont = 0, i, pos; EGIN IDATZI “Idatzi esaldia”; IRAKURRI Es; Luzera = DENBITARTEAN (Luzera <=0); IDATZI “Zein letra zenbatu nahi duzu?”; IRAKURRI Letra; … Posizioa (&Es[0], ‘/0’, 100);

  9. i= 0; EGIN pos = Posizioa (&ES[i],Letra, Luzera); BADA (pos > -1) Kont = Kont + 1; BUK_BADA i= Luzera = DENBITARTEAN (pos > -1); IDATZI Kont; IDATZI “ aldiz agertzen da”; BUKAERA pos +1; Posizioa (&Es[i], ‘/0’, 100);

  10. NORAINO n KARAKTERE POSIZIOA azpialgoritmoari dei eginez, esaldiaren zein posizioan agertzen da Kar karakterearen n-garren agerpena. Adibidez: Esaldia: Kaixo, ni iker naiz. Kar: i n: 3 Emaitza: 10 Sasikodean

  11. 2007-08 Azterketa Ariketa • Azpialgoritmo hau sortu: osoa Agerpenak (karaktere *erak, karaktere A); esaldi batean letra bat zenbat aldiz agertzen den adierazten du. • Agerpenak azpi-algoritmoa erabiltzen duen algoritmoa idatzi, “KAIXO LAGUNAK” esaldian ‘K’ eta ‘A’ letrak zenbatzen dituena.

  12. osoa Agerpenak (karaktere *erak, karaktere A) HASIERA osoa i=0, Kont = 0; *(erak+i) != ‘/0’ ez bai ITZULI Kont; *(erak+i) == A ez BUKAERA bai Kont = Kont + 1; i = i + 1;

  13. HASIERA Osoa KontK = 0, KontA = 0; Karaktere Es [50] = “KAIXO LAGUNAK”; KontK = Agerpenak (&Es[0], ‘K’); KontA = Agerpenak (&Es[0], ‘A’); IDATZI KontK; IDATZI “’K’ karaktere ta“; IDATZI KontA; IDATZI “’A’ karaktere “; BUKAERA

  14. ZENBATU KARAKTEREAK Posizioa eta Agerpenak azpialgoritmoak erabiliz, zenbatu zenbat aldiz agertzen den karaktere bakoitza erabiltzaileak adierazitako esaldi batean. Fluxu diagraman

  15. Taulak landu funtzioekin • Ondorengoa egin: • Jaso 8 zenbaki positibo 2X4 – ko taulan • Bikoiztu taula osoa eta pantailaratu. • Laukoiztu 0 lerroa eta pantailaratu. • Hirukoiztu 1 lerroa eta pantailaratu. • Bi lerroetako 2 eta 3 zutabeetan dauden zenbakiak biderkatu 10-rrengatik. Pantailaratu. • Zero gorde taula osoan eta pantailaratu.

  16. hutsa Pantailaratu (osoa *erak, int zenbat) HASIERA osoa *erak2; erak2 = erak; DENBITARTEAN (erak2 < (erak+zenbat)) IDATZI *erak2; erak2 = erak2 + 1; BUK_DENBITARTEAN BUKAERA

  17. hutsa Biderkatu (osoa *erak, osoa zenbat, osoa Biderkatzailea) HASIERA osoa *erak2 = erak; DENBITARTEAN (erak2 < (erak+zenbat)) *erak2 = *erak2 * Biderkatzailea; erak2 = erak2 + 1; BUK_DENBITARTEAN BUKAERA

  18. HASIERA osoa T [2][4], L, Z; //taula bete IZANDADIN (L=0) DENBITARTEAN (L<2) EGUNERATU (L = L +1) IZANDADIN (Z=0) DENBITARTEAN (Z<4) EGUNERATU (Z = Z +1) EGIN IDATZI L, Z, “zenbakia emaidazu:”; IRAKURRI T[L][Z]; DENBITARTEAN (T[L][Z] <0); BUK_IZANDADIN; BUK_IZANDADIN; …

  19. //taula bikoiztu Biderkatu (&T[0][0], 8, 2); Pantailaratu (&T[0][0], 8); //0 lerroa laukoiztu Biderkatu (&T[0][0], 4, 4); Pantailaratu (&T[0][0], 4); //1 lerroa hirukoiztu Biderkatu (&T[1][0], 4, 3); Pantailaratu (&T[1][0], 4); …

  20. //2 eta 3 lerroak *10 Biderkatu (&T[0][2], 2, 10); Pantailaratu (&T[0][2], 2); Biderkatu (&T[1][2], 2, 10); Pantailaratu (&T[1][2], 2); //0-z bete taula Biderkatu (&T[0][0], 8, 0); Pantailaratu (&T[0][0], 8); BUKAERA

  21. 10 zenbakien Kalkulagailua • Menua hau duen 10 zenbakien kalkulagailua: {10,9,8,7,6,5,4,3,2,1} • Adierazi zenbaki errenkada • Batu errenkada (55) • Lehen zenbakiari kendu beste guztiak (-35) • Lehen bost zenbakiei kendu beste bost zenbakiak (40-15 = 25) • Irten

More Related