<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="gl">
	<id>http://web.iesrodeira.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Conceptos_B%C3%A1sicos_de_Programaci%C3%B3n</id>
	<title>Conceptos Básicos de Programación - Historial de revisións</title>
	<link rel="self" type="application/atom+xml" href="http://web.iesrodeira.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Conceptos_B%C3%A1sicos_de_Programaci%C3%B3n"/>
	<link rel="alternate" type="text/html" href="http://web.iesrodeira.com/mediawiki/index.php?title=Conceptos_B%C3%A1sicos_de_Programaci%C3%B3n&amp;action=history"/>
	<updated>2026-09-13T13:07:32Z</updated>
	<subtitle>Historial de revisións desta páxina no wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>http://web.iesrodeira.com/mediawiki/index.php?title=Conceptos_B%C3%A1sicos_de_Programaci%C3%B3n&amp;diff=1864&amp;oldid=prev</id>
		<title>Xavi: Nova páxina: &quot;== Metodoloxía da Programación. ==  A principal razón para que as persoas aprendan a programar e o obxectivo xeral das linguaxes de programación, é poder facer uso da computa...&quot;</title>
		<link rel="alternate" type="text/html" href="http://web.iesrodeira.com/mediawiki/index.php?title=Conceptos_B%C3%A1sicos_de_Programaci%C3%B3n&amp;diff=1864&amp;oldid=prev"/>
		<updated>2014-06-26T10:08:23Z</updated>

		<summary type="html">&lt;p&gt;Nova páxina: &amp;quot;== Metodoloxía da Programación. ==  A principal razón para que as persoas aprendan a programar e o obxectivo xeral das linguaxes de programación, é poder facer uso da computa...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Páxina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Metodoloxía da Programación. ==&lt;br /&gt;
&lt;br /&gt;
A principal razón para que as persoas aprendan a programar e o obxectivo xeral das linguaxes de programación, é poder facer uso da computadora como unha ferramenta para a resolución de problemas. Axudado por unha computadora, a resolución dun problema pódese dividir en tres fases importantes:&lt;br /&gt;
&lt;br /&gt;
# Análise do problema. &lt;br /&gt;
# Deseño ou desenvolvemento dun algoritmo. &lt;br /&gt;
# Resolución do algoritmo na computadora. &lt;br /&gt;
&lt;br /&gt;
==== Análise Do Problema. ====&lt;br /&gt;
&lt;br /&gt;
O propósito da análise dun problema é axudar ó programador para chegar a unha certa comprensión da natureza do problema. O problema debe estar ben definido si se desexa chegar a unha solución satisfactoria. A análise do problema esixe unha lectura previa co fin de obter unha idea xeral do que se solicita. A segunda lectura deberá servir para responder ás preguntas:&lt;br /&gt;
&lt;br /&gt;
*¿Que información debe proporcionar a resolución dun problema dado? &lt;br /&gt;
*¿Que datos se necesitan para resolve-lo? &lt;br /&gt;
&lt;br /&gt;
==== Deseño do Algoritmo. ====&lt;br /&gt;
&lt;br /&gt;
En xeral podemos definir un &amp;#039;&amp;#039;&amp;#039;algoritmo&amp;#039;&amp;#039;&amp;#039; como un método que permite resolver un problema dado, no cal se describen os pasos necesarios para conseguir o fin proposto. É importante ter en conta de que a descrición dun algoritmo é totalmente independente da linguaxe de programación que posteriormente se utilice para levar o algoritmo a un ordenador.&lt;br /&gt;
&lt;br /&gt;
As características dun bo algoritmo son:&lt;br /&gt;
&lt;br /&gt;
# Preciso: Debe indicar sen ambigüidades a orde e os pasos necesarios para resolver o problema. &lt;br /&gt;
# Definido: Si se sigue o algoritmo dúas veces en idénticas condicións, débese obter o mesmo resultado. &lt;br /&gt;
# Finito: Debe chegar a un final nun número finito de pasos. &lt;br /&gt;
&lt;br /&gt;
Á súa vez, a definición dun algoritmo debe ter esencialmente tres partes:&lt;br /&gt;
&lt;br /&gt;
# Entrada: Solicítanse os datos necesarios para o problema e para que o algoritmo se inicie. &lt;br /&gt;
# Proceso: Conxunto de operacións que se realizan sobre os datos de entrada e outros datos internos para dar lugar a un resultado. &lt;br /&gt;
# Saída: É a fase na que se proporcionan os resultados do algoritmo. &lt;br /&gt;
&lt;br /&gt;
Un ordenador non ten capacidade para solucionar problemas por si mesmo. Só os soluciona cando se lle proporcionan os pasos sucesivos a realizar, ou sexa o algoritmo, traducido a código máquina.&lt;br /&gt;
&lt;br /&gt;
Os problemas complexos se resolven máis eficazmente cando se dividen en sub-problemas (módulos) máis doados de solucionar que o orixinal. A descomposición do problema orixinal noutros máis simples e, a continuación, a división destes noutros aínda máis simples, e así sucesivamente ata chegar á solución completa do problema chámase &amp;#039;&amp;#039;&amp;#039;deseño descendente&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;top-down&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;. Normalmente os pasos indicados no primeiro esbozo do algoritmo son xenéricos, incompletos e indicarán só un número reducido de tarefas. Tras esta primeira descrición, estes pasos amplíanse nunha descrición máis detallada con máis pasos máis específicos. Isto é o que se denomina &amp;#039;&amp;#039;refinamento do algoritmo&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
As vantaxes máis importantes do deseño descendente son:&lt;br /&gt;
&lt;br /&gt;
* Os problemas se entenden con máis facilidade ó dividilos en partes máis simples denominadas módulos. &lt;br /&gt;
* As modificacións e corrección dos módulos son máis sinxelas. &lt;br /&gt;
* A verificación do problema é máis fácil. &lt;br /&gt;
* Facilita a distribución do traballo para ser solucionado entre varios grupos de persoas. &lt;br /&gt;
* Reutilización do código. Algúns módulos poden ser útiles en outros programas &lt;br /&gt;
&lt;br /&gt;
A preocupación do deseñador centrarase en resolver correctamente cada un dos subproblemas (tarefa máis sinxela), coa garantía de que a unión de tódalas solucións dos subproblemas resolverá adecuadamente o problema de partida.&lt;br /&gt;
&lt;br /&gt;
Cando se diseñan os distintos módulos convén non perder de vista a posibilidade de reutilización que pode presentar o módulo e deseñalo tendo esto en conta. Deste xeito conseguiremos ir xuntando unha &amp;#039;&amp;#039;&amp;#039;librería&amp;#039;&amp;#039;&amp;#039; de módulos que nos axudarán nos novos traballos.&lt;br /&gt;
&lt;br /&gt;
Existen varias ferramentas que permiten o deseño e a representación dun algoritmo. Dúas delas son os diagramas de fluxo e o pseudocódigo.&lt;br /&gt;
&lt;br /&gt;
==== Resolución do Algoritmo na Computadora. ====&lt;br /&gt;
&lt;br /&gt;
Unha vez que o algoritmo está deseñado débese pasar á fase de resolución práctica do problema coa computadora. Esta fase descomponse á súa vez nas seguintes subfases:&lt;br /&gt;
&lt;br /&gt;
# Codificación do algoritmo nun programa. &lt;br /&gt;
# Compilación e execución. &lt;br /&gt;
# Verificación e depuración. &lt;br /&gt;
&lt;br /&gt;
===== Codificación =====&lt;br /&gt;
&lt;br /&gt;
Consiste en transcribir o algoritmo a unha linguaxe de alto nivel. Dado que os algoritmos son deseñados independentemente das linguaxes de programación, o código pode ser escrito con igual facilidade nunha linguaxe ou outra.&lt;br /&gt;
&lt;br /&gt;
===== Compilación =====&lt;br /&gt;
&lt;br /&gt;
Unha vez que o algoritmo se converteu nun programa fonte, mediante o proceso de codificación, é necesario traducilo a código ou linguaxe máquina, única que o computador é capaz de entender e executar. O encargado de realizar esta función é un programa traductor (compilador ou intérprete) que indicará se o programa fonte presenta erros de sintaxe, nese case deberanse corrixir e volvelo a compilar, ata que non existan erros.&lt;br /&gt;
&lt;br /&gt;
===== Verificación e depuración =====&lt;br /&gt;
&lt;br /&gt;
A verificación e depuración son procesos sucesivos mediante os que se proba un programa cunha ampla variedade de datos de entrada, chamados datos de proba, que determinan se o programa ten erros lóxicos.&lt;br /&gt;
&lt;br /&gt;
E imprescindible realizar as probas unha vez compilado o programa con éxito, xa que é moi difícil conseguir programas libres de erros de lóxica. As probas deben facerse sempre intentando que o programa falle, e e aconsellable que as faga unha persoa distinta á que realizou o programa.&lt;br /&gt;
&lt;br /&gt;
A depuración consiste en, unha vez establecido que existe un erro de lóxica, localizalo e correxilo. Para axudar nesta tarefa existen utilidades chamadas &amp;#039;&amp;#039;&amp;#039;depuradores&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;debuggers&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
== Ferramentas e Notacións para o Deseño de Algoritmos. ==&lt;br /&gt;
&lt;br /&gt;
Existen varias ferramentas que permiten o deseño e a representación dun algoritmo. Aquí destacamos dúas delas que son:&lt;br /&gt;
&lt;br /&gt;
==== Diagramas de Fluxo. ====&lt;br /&gt;
&lt;br /&gt;
Os &amp;#039;&amp;#039;&amp;#039;Diagramas de fluxo&amp;#039;&amp;#039;&amp;#039; foron unha das ferramentas máis usadas debido ó seu caracter gráfico, xa que tódolos algoritmos son representados a través de figuras ou símbolos estándar que teñen asociado un significado particular. Cada paso do algoritmo é representado a través dun símbolo adecuado e o orden en que estes pasos se executan indícase conectándoos con frechas chamadas liñas de fluxo. Este sistema proporciona unha perspectiva visual do fluxo de execución do programa.&lt;br /&gt;
&lt;br /&gt;
Símbolos básicos dos diagramas de fluxo ou ordinogramas:&lt;br /&gt;
&lt;br /&gt;
[[Image:diafluxo.png]]&lt;br /&gt;
&lt;br /&gt;
Por exemplo o seguinte diagrama representa un algoritmo para visualizar os factores primos dun número solicitado ó usuario:&lt;br /&gt;
&lt;br /&gt;
[[Image:fluxofacprimos.png]]&lt;br /&gt;
&lt;br /&gt;
==== Pseudocódigo. ====&lt;br /&gt;
&lt;br /&gt;
O &amp;#039;&amp;#039;&amp;#039;Pseudocódigo&amp;#039;&amp;#039;&amp;#039; xurdiu como alternativa ós diagramas de fluxo. É unha linguaxe algorítmica similar ó idioma natural, pero máis conciso e que permite unha redacción rápida do algoritmo, carecendo, loxicamente, da precisión nas súas operacións que posúen as linguaxes de programación.&lt;br /&gt;
&lt;br /&gt;
== Estructuras Básicas dos Programas. ==&lt;br /&gt;
&lt;br /&gt;
Para implementar os programas utilízanse sempre as mesmas estructuras básicas, que nos proporcionan as ferramentas para almacenar valores, variar o fluxo de execución do algoritmo, ou agrupar un conxunto de instruccións que proporcionan unha funcionalidade de xeito que sexa posible reutilizalas cando sexa convinte: &amp;#039;&amp;#039;&amp;#039;variables&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;estructuras de control&amp;#039;&amp;#039;&amp;#039; e as &amp;#039;&amp;#039;&amp;#039;funcións&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
==== Variables e Constantes ====&lt;br /&gt;
&lt;br /&gt;
Unha &amp;#039;&amp;#039;&amp;#039;variable&amp;#039;&amp;#039;&amp;#039; é un sitio donde se pode almacenar un valor. En calquera momento se pode modificar o valor da variable almacenando un novo valor.&lt;br /&gt;
&lt;br /&gt;
Unha &amp;#039;&amp;#039;&amp;#039;constante&amp;#039;&amp;#039;&amp;#039; é un nome que se lle da a un valor fixo. Por exemplo PI pra representar 3.14159, este valor polo tanto non varía.&lt;br /&gt;
&lt;br /&gt;
As variables as identificaremos cun nome, que empezará por unha letra e &amp;#039;&amp;#039;non levará espacios en branco&amp;#039;&amp;#039;. Convén elexir nomes para as variables que definan a información que van a almacenar, por exemplo: &amp;#039;&amp;#039;&amp;#039;edade&amp;#039;&amp;#039;&amp;#039; é un bo nome de variable, pero &amp;#039;&amp;#039;&amp;#039;w&amp;#039;&amp;#039;&amp;#039; non.&lt;br /&gt;
&lt;br /&gt;
As instruccións típicas con variables son :&lt;br /&gt;
&lt;br /&gt;
* ASIGNACIÓNS: E o proceso de almacenar un valor a unha varible. Se realizará poñendo &amp;#039;&amp;#039;&amp;#039;variable = valor&amp;#039;&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;&amp;#039;variable = expresión matemática&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* EXPRESIÓNS: Pódense utilizar variables en expresións matemáticas ou lóxicas. Nese caso utilizarase o valor que ten en ese momento a variable para realizar o cálculo ou evaluar a expresión.&lt;br /&gt;
&lt;br /&gt;
En moitas linguaxes de programación as variables teñen asociado un &amp;#039;&amp;#039;&amp;#039;tipo&amp;#039;&amp;#039;&amp;#039; de datos que define o tipo de información que é capaz de almacenar.&lt;br /&gt;
&lt;br /&gt;
==== Estructuras de control ====&lt;br /&gt;
&lt;br /&gt;
Os programas normalmente se executan en secuencia, dende a primeira instrucción ata a última. Para variar o fluxo de execución do programa empréganse as estructuras de control.&lt;br /&gt;
&lt;br /&gt;
Todas as linguaxes de programación proporcionan o mesmo tipo de estructuras de control básicas, o único que cambia e a forma de escribilas e as palabras empregadas. Aquí faremos unha posible descripción de modo que as podamos utilizar dun xeito independiente da linguaxe de programación que utilicemos posteriormente, facilitando así o deseño do seudocódigo dos programas.&lt;br /&gt;
&lt;br /&gt;
==== Selección (Condicionais) ====&lt;br /&gt;
&lt;br /&gt;
As estructuras de selección permiten seleccionar que instruccións executar segun o resultado dunha condición. As habituais en case todas as linguaxes de programación son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;#29531E&amp;quot;&amp;gt; &amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Si (condición)             Si (condición)              Según (variable)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;lt;instruccións&amp;gt;;             &amp;lt;instruccións&amp;gt;;             &amp;#039;&amp;#039;&amp;#039;No caso VALOR:&amp;#039;&amp;#039;&amp;#039; &amp;lt;instruccións&amp;gt;;&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Se non                     Fin-Si&amp;#039;&amp;#039;&amp;#039;                         &amp;#039;&amp;#039;&amp;#039;No caso VALOR:&amp;#039;&amp;#039;&amp;#039; &amp;lt;instruccións&amp;gt;;&lt;br /&gt;
     &amp;lt;instruccións&amp;gt;                                                ......&lt;br /&gt;
   &amp;#039;&amp;#039;&amp;#039;Fin-Si&amp;#039;&amp;#039;&amp;#039;                                                    &amp;#039;&amp;#039;&amp;#039;Noutro caso:&amp;#039;&amp;#039;&amp;#039; &amp;lt;instruccións&amp;gt;;&lt;br /&gt;
                                                          &amp;#039;&amp;#039;&amp;#039;Fin-Según&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
A sentencia &amp;#039;&amp;#039;&amp;#039;Según&amp;#039;&amp;#039;&amp;#039; permite seleccionar un grupo de instruccións dependendo do valor dunha variable. As sentencias &amp;#039;&amp;#039;&amp;#039;Si&amp;#039;&amp;#039;&amp;#039; permiten executar un grupo de instruccións so si se cumple a condición indicada. Tamén é posible decir que grupo de instruccións alternativa queremos executar si a condición non se cumple coa palabra &amp;#039;&amp;#039;&amp;#039;Se non&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
A sentencia &amp;#039;&amp;#039;&amp;#039;Según&amp;#039;&amp;#039;&amp;#039; en realidade e unha forma de abreviar varios &amp;#039;&amp;#039;&amp;#039;Si&amp;#039;&amp;#039;&amp;#039; anidados.&lt;br /&gt;
&lt;br /&gt;
A representación en diagramas de fluxo sería:&lt;br /&gt;
&lt;br /&gt;
[[Image:Símbolo_Si.png]]&lt;br /&gt;
&lt;br /&gt;
==== Iteracións (Bucles ou Ciclos) ====&lt;br /&gt;
&amp;lt;c&amp;gt;&lt;br /&gt;
Mentras (condición)         Facer&lt;br /&gt;
  &amp;lt;instruccións&amp;gt;              &amp;lt;instruccións&amp;gt;&lt;br /&gt;
  ...                         ...&lt;br /&gt;
Fin-Mentras                 Mentras (condición);&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
A sentencia &amp;#039;&amp;#039;&amp;#039;Mentras&amp;#039;&amp;#039;&amp;#039; permite &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;repetir&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; a execución dun grupo de instruccións &amp;#039;&amp;#039;&amp;#039;mentras&amp;#039;&amp;#039;&amp;#039; se cumple a condición indicada. A diferencia con &amp;#039;&amp;#039;&amp;#039;Facer&amp;#039;&amp;#039;&amp;#039; é que esta última executa as instruccións antes de evaluar a condición a primeira vez.&lt;br /&gt;
&lt;br /&gt;
A súa representación en diagramas de fluxo permite unha mellor comprensión:&lt;br /&gt;
&lt;br /&gt;
[[Image:Simbolo_Mentras.png]]&lt;br /&gt;
&lt;br /&gt;
==== Funcións ====&lt;br /&gt;
&lt;br /&gt;
As &amp;#039;&amp;#039;&amp;#039;funcións&amp;#039;&amp;#039;&amp;#039; consisten en agrupar unha serie de instruccións que proveen unha certa funcionalidade baixo un nome. Esto permite o &amp;#039;&amp;#039;&amp;#039;deseño descendente&amp;#039;&amp;#039;&amp;#039; dunha maneira efectiva e facilita a reutilización do código, xa que esa funcionalidade pode ser necesaria noutros programas. As funcións normalmente reciben os datos de entrada necesarios para realizar o seu traballo nunhas variables chamadas &amp;#039;&amp;#039;&amp;#039;parámetros&amp;#039;&amp;#039;&amp;#039; e producen un &amp;#039;&amp;#039;resultado de saída&amp;#039;&amp;#039;. Unha forma de representar as funcións pode ser o seguinte:&lt;br /&gt;
&lt;br /&gt;
        &amp;#039;&amp;#039;&amp;#039;Función &amp;lt;nomedafunción&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
           &amp;#039;&amp;#039;&amp;#039;RECIBE :&amp;#039;&amp;#039;&amp;#039; variable: Descripción, variable: Descripción, variable: Descripción, ...&lt;br /&gt;
           &amp;#039;&amp;#039;&amp;#039;DEVOLVE:&amp;#039;&amp;#039;&amp;#039; descripción&lt;br /&gt;
             &amp;lt;instruccións&amp;gt;&lt;br /&gt;
             ...&lt;br /&gt;
        &amp;#039;&amp;#039;&amp;#039;Fin-Función &amp;lt;nomedafunción&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Normalmente as variables utilizadas na función existen so dentro da función (locais), e non teñen nada que ver con outras variables que se utilicen fora aínda que se chamen igual. Para utilizar a función únicamente é necesario chamala polo seu nome e con a lista de parámetros entre paréntese e almacenar (si e necesario) o valor devolto nunha variable:&lt;br /&gt;
&lt;br /&gt;
       variable = &amp;#039;&amp;#039;&amp;#039;&amp;lt;nomedafunción&amp;gt; (dato1, dato2, dato3, ....)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Técnicas de Programación. ==&lt;br /&gt;
&lt;br /&gt;
==== Programación &amp;#039;Convencional&amp;#039;. ====&lt;br /&gt;
&lt;br /&gt;
A programación estructurada é unha metodoloxía de programación que fundamentalmente trata de construír programas que sexan facilmente comprensibles. Esta metodoloxía está baseada na técnica de desenvolvemento de programas por refinamentos sucesivos: inicialmente plantéxase a operación global a realizar polo programa, e descomponse noutras máis sinxelas. Á súa vez, estas últimas volven ser descompostas novamente noutras accións aínda máis elementais. Este proceso de descomposición continúa hasta que todo se pode escribir utilizando tres estructuras básicas de control (as estructuras de control determinan a orde na que deben realizarse as distintas accións):&lt;br /&gt;
&lt;br /&gt;
# Secuencia.&lt;br /&gt;
# Selección.&lt;br /&gt;
# Iteración.&lt;br /&gt;
&lt;br /&gt;
===== Secuencia =====&lt;br /&gt;
&lt;br /&gt;
Cando se deben executar sucesivamente distintas accións, escribirase a lista destas accións na orde na que deban ser executadas.&lt;br /&gt;
&lt;br /&gt;
===== Selección =====&lt;br /&gt;
&lt;br /&gt;
Son aquelas que controlan a execución ou a non execución dunha ou máis instruccións en función de que se cumpra ou non unha condición previamente establecida. a.- Alternativa simple. b.- Alternativa dobre. c.- Alternativa múltiple.&lt;br /&gt;
&lt;br /&gt;
===== Iteración =====&lt;br /&gt;
&lt;br /&gt;
A estructura de control iterativa permite expresar que unha mesma acción ou composición de accións se debe executar unha ou máis veces e de forma consecutiva: a.- Estructura Mentres. b.- Estructura Repetir - Mentres c.- Estructura Para&lt;br /&gt;
&lt;br /&gt;
==== Programación Orientada a Obxectos. ====&lt;br /&gt;
&lt;br /&gt;
A programación orientada a obxectos (&amp;#039;&amp;#039;&amp;#039;OOP&amp;#039;&amp;#039;&amp;#039;) pretende solucionar os problemas enfocandoos dende o punto de vista dos obxectos que interveñen no problema e a forma de relacionarse entre eles. Baixo este punto de vista, un obxecto está composto de &amp;#039;&amp;#039;&amp;#039;atributos ou propiedades&amp;#039;&amp;#039;&amp;#039; (información que almacenan) e de &amp;#039;&amp;#039;&amp;#039;métodos&amp;#039;&amp;#039;&amp;#039; (accións que poden realizar sobre os seus atributos). Destes métodos, algúns son públicos (accesibles por outros obxectos) e outros privados (para uso interno do propio obxecto), os atributos públicos reciben o nome de &amp;#039;&amp;#039;interface&amp;#039;&amp;#039; do obxecto. Os obxectos se comunican entre eles invocando métodos doutros obxectos, no que se chama normalmente unha &amp;#039;&amp;#039;&amp;#039;mensaxe&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Os métodos en realidade son funcións que forman parte do obxecto. Os obxectos se deseñan pensando únicamente no obxecto e nas funcionalidades que debe proporcionar.&lt;br /&gt;
&lt;br /&gt;
Para crear un obxecto é necesario diseñar unha &amp;#039;&amp;#039;&amp;#039;clase&amp;#039;&amp;#039;&amp;#039; de obxecto, que é a que vai a definir qué atributos e métodos van a ter todos os obxectos que pertenezcan a esa clase. Por exemplo, si diseñamos a clase &amp;#039;&amp;#039;coche&amp;#039;&amp;#039;, que ten como &amp;#039;&amp;#039;atributos&amp;#039;&amp;#039; a cor, a cilindrada, o número de portas e o tipo de combustible e como &amp;#039;&amp;#039;métodos&amp;#039;&amp;#039; arrancar, parar e cambiar de marcha poderemos crear obxectos de tipo coche, como poden ser &amp;#039;&amp;#039;wvpolo&amp;#039;&amp;#039;, &amp;#039;&amp;#039;scenic&amp;#039;&amp;#039; ou &amp;#039;&amp;#039;golf&amp;#039;&amp;#039;. Ó proceso de crear un obxecto coñécese como &amp;#039;&amp;#039;&amp;#039;instanciación&amp;#039;&amp;#039;&amp;#039; e dise que se crea unha &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;instancia&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; da clase á que pertence o obxecto.&lt;br /&gt;
&lt;br /&gt;
As características máis importantes da programación orientada a obxecto son a &amp;#039;&amp;#039;&amp;#039;herdanza&amp;#039;&amp;#039;&amp;#039; e o &amp;#039;&amp;#039;&amp;#039;polimorfismo&amp;#039;&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;: &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* A &amp;#039;&amp;#039;&amp;#039;herdanza&amp;#039;&amp;#039;&amp;#039; permite o deseño de novas clases a partir de outras existentes, herdando de modo automático toda a funcionalidade (métodos e atributos).&lt;br /&gt;
&lt;br /&gt;
* O &amp;#039;&amp;#039;&amp;#039;polimorfismo&amp;#039;&amp;#039;&amp;#039; indica que un método pode ter distintas funcionalidades. Si definimos unha nova clase a partir de outra (herdanza) herdaremos os seus métodos. É posible reescribir a funcionalidade destes métodos herdados de modo que teremos novas versións dos mesmos métodos con comportamentos distintos. A posibilidade de ter distintas versións do mesmo método dentro dunha clase, diferenciándose únicamente no tipo de información que reciben coñécese como &amp;#039;&amp;#039;&amp;#039;sobrecarga&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Un &amp;#039;&amp;#039;exemplo de polimorfismo&amp;#039;&amp;#039; pode ser o seguinte: Temos a clase base &amp;#039;&amp;#039;Paxaro&amp;#039;&amp;#039;, que ten un método chamado &amp;#039;&amp;#039;camiña&amp;#039;&amp;#039;, que fai que o paxaro camiñe. Podemos crear novas clases derivadas de &amp;#039;&amp;#039;Paxaro&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Gorrión&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Paloma&amp;#039;&amp;#039; e &amp;#039;&amp;#039;Pingüín&amp;#039;&amp;#039;) que heredan os métodos e atributos de &amp;#039;&amp;#039;Paxaro&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;son paxaros&amp;#039;&amp;#039;&amp;#039;). Sen embargo o xeito de camiñar dos &amp;#039;&amp;#039;Pingüíns&amp;#039;&amp;#039; é distinto do dos demáis &amp;#039;&amp;#039;Paxaros&amp;#039;&amp;#039;, co que é necesario reescribir a funcionalidade do método &amp;#039;&amp;#039;camiña&amp;#039;&amp;#039; dentro da clase &amp;#039;&amp;#039;Pingüín&amp;#039;&amp;#039;, non así cos &amp;#039;&amp;#039;Gorrións&amp;#039;&amp;#039; e &amp;#039;&amp;#039;Palomas&amp;#039;&amp;#039; xa que camiñan como todos os &amp;#039;&amp;#039;Paxaros&amp;#039;&amp;#039;. Desde o punto de vista do programa, todos os &amp;#039;&amp;#039;Paxaros&amp;#039;&amp;#039; poden camiñar (invocando ó metodo &amp;#039;&amp;#039;camiña&amp;#039;&amp;#039;) o polimorfismo encárgase de que cada &amp;#039;&amp;#039;Paxaro&amp;#039;&amp;#039; poda facelo da maneira axeitada.&lt;br /&gt;
&lt;br /&gt;
Este tipo de programación facilita moito a reutilización do código, xa que as clases deseñadas poden formar parte de varios problemas, e a herdanza proporciona unha forma de desenvolvemento moi rápida.&lt;br /&gt;
&lt;br /&gt;
O obxectivo da programación orientada a obxectos é a creación de obxectos, mentres que na programación por procedementos é a xeración de fluxos de programa e liñas de código. Cando se pensa en orientación a obxectos estase facendo referencia a compoñentes software que posúen unha determinada estructura de datos e son capaces de responder a distintos estímulos.&lt;br /&gt;
&lt;br /&gt;
Mentres que na programación clásica o importante son os procedementos, o que hai que facer, a funcionalidade do sistema e, pensando nela créanse as estructuras de datos. En cambio, na programación orientada a obxectos o importante son estes, a súa identificación e definición. Máis tarde tense en conta o código como un elemento que serve para facilitar a interacción entre obxectos.&lt;br /&gt;
&lt;br /&gt;
Frente á programación por procedementos, as clases teñen as seguintes vantaxes: Facilítase a reutilización do código, a realización de modificacións e introducción de melloras na aplicación, o reparto das tarefas de desenvolvemento entre varios programadores e a corrección de erros.&lt;br /&gt;
&lt;br /&gt;
==== Programación Visual e Ferramentas Case. ====&lt;br /&gt;
&lt;br /&gt;
Coa chegada das interfaces gráficas de usuario (&amp;#039;&amp;#039;&amp;#039;GUI&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;G&amp;#039;&amp;#039;&amp;#039;raphical &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;ser &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;terface&amp;#039;&amp;#039;)) naceu o desenvolvemento visual e orientado a eventos. Neste tipo de desenvolvemento o usuario limítase a colocar na pantalla dun xeito visual os distintos compoñentes do programa programando so a resposta que debe dar o compoñente a certos eventos permitindo deste xeito un rápido desenvolvemento da interface do usuario. Por exemplo, podería colocar na pantalla un botón, e programar a acción a realizar cando se pulse ese botón (evento de botón pulsado). Este tipo de ferramentas para programar chámanse &amp;#039;&amp;#039;&amp;#039;RAD&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;apid &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;pplication &amp;#039;&amp;#039;&amp;#039;D&amp;#039;&amp;#039;&amp;#039;evelopment&amp;#039;&amp;#039;) e garda unha certa relación cos entornos de cuarta xeración e as ferramentas CASE.&lt;br /&gt;
&lt;br /&gt;
En principio calquera programa que se poida empregar nos procesos de análise, desenvolvemento, implantación e mantemento de aplicacións informáticas pode incluírse dentro da categoría de ferramenta CASE. Non obstante, existe todo un conxunto de utilidades, entornos e outras ferramentas especificamente CASE que proporcionan ó enxeñeiro de software a capacidade de automatizar as actividades manuais e de mellorar o seu enfoque de traballo.&lt;br /&gt;
&lt;br /&gt;
==== Entornos de cuarta xeración ====&lt;br /&gt;
&lt;br /&gt;
Un tipo de ferramentas CASE que se utilizan en tarefas de programación son os entornos de cuarta xeración.&lt;br /&gt;
&lt;br /&gt;
As técnicas de cuarta xeración son un conxunto de ferramentas que permiten a obtención de código fonte a partir de especificacións a alto nivel. Canto maior sexa o nivel de especificación maior será a velocidade de programación. As técnicas de cuarta xeración tenden a estar cada vez máis cerca da linguaxe natural.&lt;br /&gt;
&lt;br /&gt;
Dentro das técnicas de cuarta xeración pódense atopar: deseño visual de bases de datos, das súas táboas, de formularios e informes, xeración de código a partir de especificacións gráficas ou textuais, xeración automática da documentación dun proxecto, etc.&lt;br /&gt;
&lt;br /&gt;
Entre as vantaxes do uso de técnicas de cuarta xeración está o incremento da productividade derivado dunha maior velocidade de desenvolvemento.&lt;br /&gt;
&lt;br /&gt;
Como inconveniente proponse que as técnicas de cuarta xeración non producen o código máis eficiente en cada caso, nin reducen o tempo de desenvolvemento, unicamente modifícase a duración de cada fase, aumenta o tempo dedicado á análise e disminúe o da programación. Deste xeito, en sistemas de pequeno ou mediano tamaño redúcese o tempo total, xa que non se necesita unha análise moi complexa, disminuíndo así o tempo dedicado á programación.&lt;/div&gt;</summary>
		<author><name>Xavi</name></author>
	</entry>
</feed>