Diferència entre revisions de la pàgina «M3 - Programació»

De wikiserver
Dreceres ràpides: navegació, cerca
(Pràctiques)
(Exercicis taules, cadenes i nous tipus de dades)
 
(214 revisions intermèdies per 2 usuaris que no es mostren)
Línia 1: Línia 1:
 
==UF1: Programació Estructurada ==
 
==UF1: Programació Estructurada ==
 
<!--
 
<!--
 +
[[ASIX-M3-UF1-Proves|BPUF1]]
 +
-->
 +
<pre>
 
A1. L’estructura del programa informàtic
 
A1. L’estructura del programa informàtic
 
A2. La composició alternativa
 
A2. La composició alternativa
Línia 7: Línia 10:
 
A5. Tractament de cadenes
 
A5. Tractament de cadenes
 
A6. Creació de nous tipus de dades
 
A6. Creació de nous tipus de dades
 +
 +
Nota NF1 = 0.2 Pe1 + 0.08 Pt1+ 0.08 Pt2 +  0.32 Pe2 + 0.32 Pe3
 +
 +
Pe1: Qüestionari
 +
Pt1: Pràctica taules
 +
Pt2: Pràctica nou tipus de dades
 +
Pe2: Prova programació: estructures de control, algoritmes de cerca i de recorregut
 +
Pe3: Prova programació: taules, cadenes i nous tipus de dades
 +
 +
</pre>
 +
===Continguts===
 +
<!--
 +
====Algoritmes / pseudocodi====
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: Pseudocodi|Pseudocodi]]
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: Exercicis Pseudocodi |Exercicis Pseudocodi]]
 
-->
 
-->
 +
====Variables, constants, entrada de dades i operadors====
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: Algorismes i programes |Algorismes i programes]]
 +
 +
[[Fitxer:shortcuts-80.pdf]]
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: Declaració, inicialització i ús de variables |Declaració, inicialització i ús de variables]]
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: Visualització i entrada de les dades en Java |Visualització i entrada de les dades en Java]]
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: Operadors numèrics i prioritats |Operadors numèrics i prioritats]]
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: Operadors amb dades de tipus lògic |Operadors amb dades de tipus lògic]]
 +
 +
 +
====Estructures de control====
 +
 +
===== Estructures alternatives=====
 +
 +
:*Les '''estructures alternatives''' permeten prendre decisions sobre quin conjunt d’instruccions cal executar en un punt del programa.
 +
 +
:*Tota estructura alternativa es basa en l’avaluació d’una expressió que ha de donar un resultat booleà: true (cert) o false (fals). Aquesta expressió s’anomena la '''condició lògica''' de l’estructura.
 +
 +
:*El conjunt d’instruccions que s’executarà dependrà del resultat de la condició lògica, i actuarà com una mena d’interruptor que marca el flux que cal seguir dins del programa.
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: Estructura alternativa |Estructura alternativa]]
 +
 +
===== Estructures iteratives=====
 +
 +
Les estructures de repetició o iteratives permeten repetir una mateixa seqüència d’instruccions diverses vegades, mentre es compleixi una certa condició.
 +
 +
::Anomenem '''bucle''' o cicle el conjunt d’instruccions que s’ha de repetir un cert nombre de vegades, i anomenem '''iteració''' cada execució individual del bucle.
 +
 +
::Un '''bucle infinit''' és una seqüència d’instruccions dins d’un programa que itera indefinidament, normalment perquè s’espera que s’assoleixi una condició que mai no s’arriba a produir.
 +
 +
::Forçosament dins de tot bucle hi ha d’haver instruccions que manipulin variables el valor de les quals permeti controlar la repetició o el final del bucle. Aquestes variables s’anomenen '''variables de control'''.
 +
 +
Normalment, les variables de control dins d’un bucle es poden englobar dins d’algun d’aquests tipus de comportament:
 +
 +
:* '''Comptador''': una variable de tipus enter que va augmentant o disminuint, indicant de manera clara el nombre d’iteracions que caldrà fer.
 +
 +
:* '''Acumulador''': una variable en què es van acumulant directament els càlculs que es volen fer, de manera que en assolir cert valor es considera que ja no cal fer més iteracions. Si bé s’assemblen als comptadors, no són ben bé el mateix.
 +
 +
:* '''Semàfor''': una variable que serveix com a interruptor explícit de si cal seguir fent iteracions. Quan ja no en volem fer més, el codi simplement s’encarrega d’assignar-li el valor específic que servirà perquè la condició avaluï false.
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: La sentència for|La sentència for]]
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: La sentència while|La sentència while]]
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: La sentència do/while|La sentència do/while]]
 +
 +
===== Esquemes de tractament seqüencial=====
 +
 +
'''Introducció'''
 +
 +
Un esquema de programació no és altra cosa que un model de solució per a a una família de problemes de programació homòlegs. L'ús d'esquemes de programació és una eina imprescindible per al programador atès que el seu ús facilita molt la solució de problemes i rebaixa considerablement la taxa d'errors de programació.
 +
 +
Aquesta estratègia de treball no és única de l'àmbit de la programació sinó que també l'apliquem en altres disciplines. Per exemple, a física quan aprenem a resoldre problemes de tir parabòlic o a matemàtiques quan aprenem a calcular primitives fent integració per parts.
 +
 +
La metodologia general segueix aquests passos:
  
===Continguts===
+
:• Identificació del tipus de problema.
 +
:• Caracterització dels elements característics.
 +
:• Aplicació de l'esquema.
 +
 
 +
En aquest material introduïrem els esquemes seqüencials, és a dir els que s'apliquen a dades que tenen estructura de seqüència.
 +
 
 +
'''Seqüències'''
 +
 
 +
Una seqüència és un conjunt de dades de qualsevol tipus que es caracteritzen per estar disposades «en forma de fila», ja sigui des d'un punt de vista físic o conceptual. Moltes de les dades que manipula un programa tenen estructura de seqüència. Per exemple, un
 +
string com ara "Hola nois", pot ser considerat com una seqüència de caràcters ('H', 'o', 'l',...) o una matriu de reals com una seqüència de files. Més formalment, una seqüència és una conjunt de dades tal que:
 +
 
 +
:• És finit.
 +
:• Conté un element que és el primer de la seqüència
 +
:• Es pot definir la relació de "següent", que donat un element de la seqüència, diu quin ve a darrera.
 +
 
 +
Per exemple, el enters de 1 a 10 tenen estructura de seqüència atès que són un conjunt finit, tenen un primer ben definit (l'1) i la relació de següent consisteix a sumar una unitat a l'anterior.
 +
 
 +
:*[[M3 - Programació estructurada / Continguts UF1: Esquema de recorregut|Esquema de recorregut]]
 +
 
 +
:*[[M3 - Programació estructurada / Continguts UF1: Esquema de cerca|Esquema de cerca]]
 +
<!---->
 +
 
 +
====Tipus de dades compostes====
  
 
:*[[M3 - Programació estructurada / Continguts UF1: Taules |Taules]]
 
:*[[M3 - Programació estructurada / Continguts UF1: Taules |Taules]]
  
 
:*[[M3 - Programació estructurada / Continguts UF1: Cadenes de caràcters |Cadenes de caràcters]]
 
:*[[M3 - Programació estructurada / Continguts UF1: Cadenes de caràcters |Cadenes de caràcters]]
 +
 +
:*[[M3 - Programació estructurada / Continguts UF1: El tipus char |El tipus char]]
  
 
:*[[M3 - Programació estructurada / Continguts UF1: Classes |Classes]]
 
:*[[M3 - Programació estructurada / Continguts UF1: Classes |Classes]]
 +
<!---->
  
 
===Activitats===
 
===Activitats===
  
 
====Exercicis seqüencials, estructura alternativa i iteratius====
 
====Exercicis seqüencials, estructura alternativa i iteratius====
 
:*[[M3 - Programació estructurada / Exercicis UF1: Seqüencials |Exercicis seqüencials]]
 
  
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa |Exercicis d'estructura alternativa]]
 
  
:*[[M3 - Programació estructurada / Exercicis UF1: For |Exercicis amb For]]
+
:*[[M3 - Programació estructurada / Exercicis UF1: Seqüencials |Exercicis seqüencials]] / [[M3 - Programació estructurada / Exercicis UF1: Seqüencials-Solucions| Solucions]]
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Expressions lògiques|Exercicis avaluar expressions lògiques]] / [[M3 - Programació estructurada / Exercicis UF1: Expressions lògiques-Solucions| Solucions]]
  
:*[[M3 - Programació estructurada / Exercicis UF1: Recorregut |Exercicis de recorregut]]
+
:*[[M3 - Programació estructurada / Exercicis UF1: Fer expressions lògiques |Exercicis trobar expressions lògiques]] / [[M3 - Programació estructurada / Exercicis UF1: Fer expressions lògiques-Solucions| Solucions]]
  
:*[[M3 - Programació estructurada / Exercicis UF1: Cerca |Exercicis de cerca]]
+
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa preliminars|Exercicis d'estructura alternativa preliminars]] / [[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa preliminars-Solucions| Solucions]]
  
:*[[M3 - Programació estructurada / Exercicis UF1: Iteratius |Més exercicis iteratius]]
+
:*[[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa |Exercicis d'estructura alternativa]] / [[M3 - Programació estructurada / Exercicis UF1: D'estructura alternativa-Solucions| Solucions]]
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF1: For |Exercicis amb For]] / [[M3 - Programació estructurada / Exercicis UF1: For-Solucions| Solucions]]
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Recorregut |Exercicis de recorregut]] / [[M3 - Programació estructurada / Exercicis UF1: Recorregut-Solucions| Solucions]]
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Cerca |Exercicis de cerca]] / [[M3 - Programació estructurada / Exercicis UF1: Cerca-Solucions| Solucions]]
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Iteratius |Més exercicis iteratius]] / [[M3 - Programació estructurada / Exercicis UF1: Iteratius-Solucions| Solucions]]
 +
 
 +
<!---->
 +
<!--
 +
'''Proves exercicis seqüencials, estructura alternativa i iteratius 20/21'''
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Proves |Proves]]
 +
-->
 +
<!--
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Proves+Solucions |Proves + Solucions]]
 +
-->
  
 
====Exercicis taules, cadenes i nous tipus de dades====
 
====Exercicis taules, cadenes i nous tipus de dades====
  
 
:*[[M3 - Programació estructurada / Exercicis UF1: Taules |Exercicis taules]]
 
:*[[M3 - Programació estructurada / Exercicis UF1: Taules |Exercicis taules]]
 +
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Taules - Problemes |Exercicis taules - Problemes]]
  
 
:*[[M3 - Programació estructurada / Exercicis UF1: Taules - Pokemons |Exercici taules - Pokemons]]
 
:*[[M3 - Programació estructurada / Exercicis UF1: Taules - Pokemons |Exercici taules - Pokemons]]
  
 
:*[[M3 - Programació estructurada / Exercicis UF1: Cadenes |Exercicis de cadenes]]
 
:*[[M3 - Programació estructurada / Exercicis UF1: Cadenes |Exercicis de cadenes]]
 +
 +
:*[[M3 - Programació estructurada / Exercicis UF1: classe Character |Exercicis de classe Character]]
  
 
:*[[M3 - Programació estructurada / Exercicis UF1: Classes|Exercicis Classes]] / [[M3 - Programació estructurada / Exercicis UF1: Menú|Prototipus menú]]
 
:*[[M3 - Programació estructurada / Exercicis UF1: Classes|Exercicis Classes]] / [[M3 - Programació estructurada / Exercicis UF1: Menú|Prototipus menú]]
 +
<!---->
 +
<!--
 +
'''Proves exercicis taules, cadenes i nous tipus de dades 20/21'''
 +
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Proves_T_C_TD |Proves]]
 +
-->
 +
<!--
 +
:*[[M3 - Programació estructurada / Exercicis UF1: Proves_T_C_TD+Solucions |Proves + Solucions]]
 +
-->
 +
<!--
 +
====Proves OnLine====
 +
 +
- Exercicis seqüencials, estructura alternativa i iteratius
 +
 +
:*[[M3 - Programació estructurada / Exercicis UF1 Part1: Proves OnLine |Proves Online UF1 1a. Part]]
 +
 +
- Exercicis taules, cadenes i nous tipus de dades
 +
 +
:*[[M3 - Programació estructurada / Exercicis UF1 Part2: Proves OnLine |Proves Online UF1 2a. Part]]
 +
 +
- Tota la UF1
 +
 +
:*[[M3 - Programació estructurada / UF1: Proves OnLine |Proves Online UF1]]
 +
-->
  
 
===Pràctiques===
 
===Pràctiques===
  
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt1 |Pt1 - Taules]] / [[M3 - Programació estructurada / Continguts UF1: System.out.printf |System.out.printf]]
+
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt1 |Pt1 - Taules]] / [[M3 - Programació estructurada / Continguts UF1: System.out.printf |System.out.printf]] / [[M3 - Programació estructurada / Continguts UF1: Colors |Colors]]
  
 
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt2 |Pt2 - Classes]]
 
:*[[M3 - Programació estructurada / Pràctiques UF1: Pt2 |Pt2 - Classes]]
 +
<!---->
 +
 +
<!--
 +
====Repàs UF1====
 +
 +
Exercicis seqüencials: 1, 4
 +
 +
Exercicis d'estructura alternativa: 2, 4, 5, 6, 11
 +
 +
Exercicis amb For: 3, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, '''19, 20, 21, 22, 23'''
 +
 +
Exercicis de recorregut: 1, 2, 3, 4, 5, 6
 +
 +
Exercicis de cerca: 1, 2, 3, 4, 5, 6
 +
 +
Més exercicis iteratius: '''1, 2, 3, 4, 5'''
 +
-->
  
 
==UF2: Disseny modular i recursivitat==
 
==UF2: Disseny modular i recursivitat==
Línia 63: Línia 230:
 
:*[[M3 - Programació estructurada / Exercicis UF2: Exercicis mètodes |Exercicis mètodes]] / [[M3 - Programació estructurada / Exercicis UF2: Colors|Colors]]
 
:*[[M3 - Programació estructurada / Exercicis UF2: Exercicis mètodes |Exercicis mètodes]] / [[M3 - Programació estructurada / Exercicis UF2: Colors|Colors]]
  
:*[[M3 - Programació estructurada / Exercicis UF2: Mastermind |Mastermind]]  
+
:*[[M3 - Programació estructurada / Exercicis UF2: Mastermind |Mastermind]]
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF2: Recursivitat bàsics|Recursivitat bàsics]]
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF2: Recursivitat |Recursivitat]]
 +
 
 +
:*[[M3 - Programació estructurada / Exercicis UF2: Exercicis repàs programació estructurada|Exercicis repàs programació estructurada]]
 +
 
  
 
===Pràctiques===
 
===Pràctiques===
Línia 73: Línia 247:
  
 
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt3 |Pt3 - Recursivitat]]
 
:*[[M3 - Programació estructurada / Pràctiques UF2: Pt3 |Pt3 - Recursivitat]]
 +
<!---->
 +
<!--
 +
'''Proves disseny modular i recursivitat 2020-21'''
 +
 +
:*[[M3 - Programació estructurada / Exercicis UF2: Proves_DM_R |Proves]]
 +
-->
  
 
==UF3: Fonament de gestió de fitxers==
 
==UF3: Fonament de gestió de fitxers==
Línia 91: Línia 271:
  
 
:*[[M3 - Programació estructurada / Activitats UF3: Fitxers orientats a byte |Fitxers orientats a byte]]
 
:*[[M3 - Programació estructurada / Activitats UF3: Fitxers orientats a byte |Fitxers orientats a byte]]
 +
<!---->
 +
 +
==UF4: Programació Orientada a Objectes. Fonaments ==
 +
 +
===Activitats===
 +
 +
:*[[M3 - Programació Orientada a Objectes / Activitats UF4: Classes |Classes]]
 +
<!---->
 +
<!--
 +
:*[[M2 - Bases de dades / Apunts UF3 : Exercicis OnLine paquets i triggers| Paquets i triggers ]]
 +
-->

Revisió de 18:29, 8 gen 2024

UF1: Programació Estructurada

A1. L’estructura del programa informàtic
A2. La composició alternativa
A3. Disseny d’algorismes iteratius 
A4. Tractament de taules
A5. Tractament de cadenes
A6. Creació de nous tipus de dades

Nota NF1 = 0.2 Pe1 + 0.08 Pt1+ 0.08 Pt2 +  0.32 Pe2 + 0.32 Pe3

Pe1: Qüestionari
Pt1: Pràctica taules
Pt2: Pràctica nou tipus de dades
Pe2: Prova programació: estructures de control, algoritmes de cerca i de recorregut
Pe3: Prova programació: taules, cadenes i nous tipus de dades

Continguts

Variables, constants, entrada de dades i operadors

Fitxer:Shortcuts-80.pdf


Estructures de control

Estructures alternatives
  • Les estructures alternatives permeten prendre decisions sobre quin conjunt d’instruccions cal executar en un punt del programa.
  • Tota estructura alternativa es basa en l’avaluació d’una expressió que ha de donar un resultat booleà: true (cert) o false (fals). Aquesta expressió s’anomena la condició lògica de l’estructura.
  • El conjunt d’instruccions que s’executarà dependrà del resultat de la condició lògica, i actuarà com una mena d’interruptor que marca el flux que cal seguir dins del programa.
Estructures iteratives

Les estructures de repetició o iteratives permeten repetir una mateixa seqüència d’instruccions diverses vegades, mentre es compleixi una certa condició.

Anomenem bucle o cicle el conjunt d’instruccions que s’ha de repetir un cert nombre de vegades, i anomenem iteració cada execució individual del bucle.
Un bucle infinit és una seqüència d’instruccions dins d’un programa que itera indefinidament, normalment perquè s’espera que s’assoleixi una condició que mai no s’arriba a produir.
Forçosament dins de tot bucle hi ha d’haver instruccions que manipulin variables el valor de les quals permeti controlar la repetició o el final del bucle. Aquestes variables s’anomenen variables de control.

Normalment, les variables de control dins d’un bucle es poden englobar dins d’algun d’aquests tipus de comportament:

  • Comptador: una variable de tipus enter que va augmentant o disminuint, indicant de manera clara el nombre d’iteracions que caldrà fer.
  • Acumulador: una variable en què es van acumulant directament els càlculs que es volen fer, de manera que en assolir cert valor es considera que ja no cal fer més iteracions. Si bé s’assemblen als comptadors, no són ben bé el mateix.
  • Semàfor: una variable que serveix com a interruptor explícit de si cal seguir fent iteracions. Quan ja no en volem fer més, el codi simplement s’encarrega d’assignar-li el valor específic que servirà perquè la condició avaluï false.
Esquemes de tractament seqüencial

Introducció

Un esquema de programació no és altra cosa que un model de solució per a a una família de problemes de programació homòlegs. L'ús d'esquemes de programació és una eina imprescindible per al programador atès que el seu ús facilita molt la solució de problemes i rebaixa considerablement la taxa d'errors de programació.

Aquesta estratègia de treball no és única de l'àmbit de la programació sinó que també l'apliquem en altres disciplines. Per exemple, a física quan aprenem a resoldre problemes de tir parabòlic o a matemàtiques quan aprenem a calcular primitives fent integració per parts.

La metodologia general segueix aquests passos:

• Identificació del tipus de problema.
• Caracterització dels elements característics.
• Aplicació de l'esquema.

En aquest material introduïrem els esquemes seqüencials, és a dir els que s'apliquen a dades que tenen estructura de seqüència.

Seqüències

Una seqüència és un conjunt de dades de qualsevol tipus que es caracteritzen per estar disposades «en forma de fila», ja sigui des d'un punt de vista físic o conceptual. Moltes de les dades que manipula un programa tenen estructura de seqüència. Per exemple, un string com ara "Hola nois", pot ser considerat com una seqüència de caràcters ('H', 'o', 'l',...) o una matriu de reals com una seqüència de files. Més formalment, una seqüència és una conjunt de dades tal que:

• És finit.
• Conté un element que és el primer de la seqüència
• Es pot definir la relació de "següent", que donat un element de la seqüència, diu quin ve a darrera.

Per exemple, el enters de 1 a 10 tenen estructura de seqüència atès que són un conjunt finit, tenen un primer ben definit (l'1) i la relació de següent consisteix a sumar una unitat a l'anterior.

Tipus de dades compostes

Activitats

Exercicis seqüencials, estructura alternativa i iteratius


Exercicis taules, cadenes i nous tipus de dades

Pràctiques


UF2: Disseny modular i recursivitat

Continguts

Activitats


Pràctiques

UF3: Fonament de gestió de fitxers

Continguts

Activitats

UF4: Programació Orientada a Objectes. Fonaments

Activitats