Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/INAEM2017/algorimica/algoritmicaBase»
(18 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{Usuario:ManuelRomero/ProgramacionWeb/INAEM2017/algorimica/nav}} | {{Usuario:ManuelRomero/ProgramacionWeb/INAEM2017/algorimica/nav}} | ||
− | |||
− | |||
− | |||
<!--__NOEDITSECTION__--> | <!--__NOEDITSECTION__--> | ||
Línea 13: | Línea 10: | ||
[[Imagen:programacionJavaScript.png|center]] | [[Imagen:programacionJavaScript.png|center]] | ||
|} | |} | ||
+ | __TOC__ | ||
<div class=estilo1> | <div class=estilo1> | ||
+ | <div id=parrafo> | ||
===Programando=== | ===Programando=== | ||
*Hacer un programa, como ya hemos comentado, va a ser escribir un algoritmo en un lenguaje concreto de programación | *Hacer un programa, como ya hemos comentado, va a ser escribir un algoritmo en un lenguaje concreto de programación | ||
Línea 35: | Línea 34: | ||
*Un programa es la implementación de un algoritmo en un lenguaje de programación concreto | *Un programa es la implementación de un algoritmo en un lenguaje de programación concreto | ||
*En un programa podemos tener | *En un programa podemos tener | ||
+ | {{MRM_Puntos clave|Title=Qué contiene un programa| | ||
#'''''Instrucciones''''': Órdenes que implican acciones a realizar | #'''''Instrucciones''''': Órdenes que implican acciones a realizar | ||
− | #''''' | + | #'''''Estructuras de control''''': Establecen el orden o las condiciones a valorar el flujo de ejecución de |
+ | }} | ||
=== Instrucciones secuenciales === | === Instrucciones secuenciales === | ||
*Básicamente las instrucciones se reducen a un conjunto pequeño de acciones | *Básicamente las instrucciones se reducen a un conjunto pequeño de acciones | ||
*Menos la instrucción de inicio y final de bloque, el resto establecen acciones y terminarán en un punto y coma ''''';''''' | *Menos la instrucción de inicio y final de bloque, el resto establecen acciones y terminarán en un punto y coma ''''';''''' | ||
− | *Las | + | *Las prodríamos clasificar en : |
− | + | {{MRM_Puntos clave|Title=Instrucciones básicas en un lenguaje de programación| | |
− | + | ;Inicio/fin | |
− | + | ;Declaración | |
− | + | ;Asignación | |
+ | ;Leer valores del exterior al programa (p.e. un valor del teclado). | ||
+ | ;Escribir, el programa muestra resultados ( Por ejemplo la pantalla). | ||
+ | }} | ||
==== Instrucción inicio/fin de bloque ==== | ==== Instrucción inicio/fin de bloque ==== | ||
Un programa es un bloque de instrucciones que tiene un ''inicio'' y un ''fin''. Dentro de este ''bloque'' puede haber muchos bloques. Siempre cada bloque empezará y terminará con una instrucción de inicio /fin bloque respectivamente. | Un programa es un bloque de instrucciones que tiene un ''inicio'' y un ''fin''. Dentro de este ''bloque'' puede haber muchos bloques. Siempre cada bloque empezará y terminará con una instrucción de inicio /fin bloque respectivamente. | ||
Línea 62: | Línea 66: | ||
</source> | </source> | ||
− | + | {{MRM_Puntos clave|Title= PHP instruccion inicio fin| | |
− | En | + | ;En PHP el bloque '''inicio''' y '''fin''' está especificado con los caracteres |
+ | <source lang=php> | ||
+ | { //inicio de bloque | ||
+ | } //fin de bloque | ||
+ | </source> | ||
+ | ;Por otro lado el inicio del programa se especifica con las etiquetas | ||
+ | <source lang=php> | ||
+ | <?php //Etiqueta de inicio de script | ||
+ | |||
+ | ?> //Etiqueta de fin de script | ||
+ | </source> | ||
+ | }} | ||
<source lang=java> | <source lang=java> | ||
function bloque_principal() | function bloque_principal() | ||
Línea 78: | Línea 93: | ||
{{Puntos clave| | {{Puntos clave| | ||
Title=La indentación| | Title=La indentación| | ||
− | Muy importante es la '''indentación''' | + | Muy importante es la '''''indentación'''''. |
+ | *Esto implica que que '''todas '''las instrucciones de un determinado bloque vayan indentadas a un mismo nivel, con el mismo margen. | ||
+ | *Cada nuevo nivel de bloque aumento la sangría o margen. | ||
+ | *Si cierro el bloque vuelvo a niveles anteriores. | ||
}} | }} | ||
{{nota|Algunos lenguajes como '''Python '''usan directamente la indentación como inidicador de inicio/fin de bloque}} | {{nota|Algunos lenguajes como '''Python '''usan directamente la indentación como inidicador de inicio/fin de bloque}} | ||
− | + | *De momento usaremos estas etiquetas y de forma coloquial las traduciremos por '''''principio de programa php''''' y '''''final de programa''''' | |
− | + | ||
− | + | ||
− | + | ||
− | *De momento usaremos estas etiquetas y de forma coloquial las traduciremos por '''''principio de programa | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
==== Instrucción de declaración ==== | ==== Instrucción de declaración ==== | ||
Línea 107: | Línea 109: | ||
#subprogramas (funciones, procedimientos. En terminología OO métodos), esto lo veremos mas adelante | #subprogramas (funciones, procedimientos. En terminología OO métodos), esto lo veremos mas adelante | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | *LA manera de hacer declaración dependerá del lenguaje de programación utilizado. | |
− | * | + | {{MRM_Puntos clave|Title=Lenguajes de programación en función de cómo se realiza la delcaración| |
− | + | ;Lenguajes fuertemente tipados | |
− | + | :las variables deben de ser declaradas antes de usarlas. | |
− | + | :Durante la ejecución esa variable no cambia de tipo | |
− | + | <source lang=java> | |
− | + | int edad; | |
− | + | String nombre; | |
− | <source lang= | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</source> | </source> | ||
+ | ;Lenguajes débilmente tipados | ||
+ | ;Los valores con los que trabaja siempre tienen un tipo. | ||
+ | ;Éste no ha de ser declarado antes de ser utilizarlo. | ||
+ | ;De forma implícitamete es declarada el tipo cada vez que asignamos un valor a la variable utilizada. | ||
+ | ;Este tipo puede cambiar si asignamos un valor de otro tipo | ||
+ | <source lang=java> | ||
+ | $a = 5; //Ahora la variable $a es de tipo entero | ||
+ | $a = "Nieves"; //Ahora la variable $b es de tipo string | ||
+ | |||
+ | </source> | ||
+ | }} | ||
+ | *El tipo de la variable es ulizado para saber cuanto espacio de memoria debo reservar para almacer el valor de esa variable. | ||
+ | *Por ejemplo en un entero puede ser que necesite 2 bytes, pero en un float 8 bytes | ||
+ | |||
+ | *Respecto a los tipos de variable, dependerá del lenguaje utilizado | ||
+ | *Consideremos el lenguaje '''''php''''' | ||
+ | # entero o int , en php será de tipo '''''int'''' con valores numéricos sin decimales | ||
+ | # real o float, en php será de tipo '''''int'''' igualmente valores numéricos con decimales. | ||
+ | # cadena_caracteres o String en php será el tipo '''''string''''' valores con cadenas de caracteres | ||
+ | # booano o boolean en php será de tipo '''''booleano'''' o '''''bool'''''igualmente. Valores verdad o falso | ||
+ | # null | ||
+ | |||
+ | |||
====Identificador==== | ====Identificador==== | ||
*Identificador es un nombre que identifica a la variable, constante o función. | *Identificador es un nombre que identifica a la variable, constante o función. | ||
*Existen reglas para crear los identificadores y éstas dependen del lenguaje para el que estemos escribiendo código. Por ejemplo en PHP obligatoriamente tienen que empezar por '''$'''. | *Existen reglas para crear los identificadores y éstas dependen del lenguaje para el que estemos escribiendo código. Por ejemplo en PHP obligatoriamente tienen que empezar por '''$'''. | ||
− | *En '' | + | *En ''php''los identificadores siguen la siguiente expresión regular |
− | [a..zA..Z|_ | + | $[a..zA..Z|_][a..zA..Z|_|0..9]* |
{{Actividad|Vamos a interpretar esa expresión regular}} | {{Actividad|Vamos a interpretar esa expresión regular}} | ||
Veamos ejemplos de declaración de variables | Veamos ejemplos de declaración de variables | ||
− | {{Punto Clave|Identificadores en | + | {{Punto Clave|Identificadores en php |
− | [a..zA..Z|_ | + | $[a..zA..Z|_][a..zA..Z|_|$|0..9]* |
}} | }} | ||
<source lang=java> | <source lang=java> | ||
Línea 149: | Línea 158: | ||
float raiz; | float raiz; | ||
</source> | </source> | ||
+ | {{MRM_Pregunta| | ||
+ | ;Cómo declararías estas variables en php}} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
*Ejemplos de declaración de constantes | *Ejemplos de declaración de constantes | ||
*En principio en la constante no necesito saber el tipo con lo que directamente uso identificador y valor | *En principio en la constante no necesito saber el tipo con lo que directamente uso identificador y valor | ||
Línea 155: | Línea 172: | ||
const MESES = 12; | const MESES = 12; | ||
</source> | </source> | ||
− | |||
<source lang=javaScript> | <source lang=javaScript> | ||
//Defino una constante | //Defino una constante | ||
Línea 162: | Línea 178: | ||
const MESES = 12; | const MESES = 12; | ||
const pi = 3.1416; | const pi = 3.1416; | ||
+ | |||
+ | define (IDENTIFICADO, valor); | ||
// … mas instrucciones | // … mas instrucciones | ||
} | } | ||
Línea 190: | Línea 208: | ||
* '''literal''' Directamente aporto el '''valor''', '''constante o identificador de variable '''que directamente me da el valor. | * '''literal''' Directamente aporto el '''valor''', '''constante o identificador de variable '''que directamente me da el valor. | ||
* '''expresión''' ==> es un predicado con operadores que es evaluado y de su evaluación obtengo un valor. En función de los operadores las expresiones serán de diferente tipo | * '''expresión''' ==> es un predicado con operadores que es evaluado y de su evaluación obtengo un valor. En función de los operadores las expresiones serán de diferente tipo | ||
− | ** | + | ** '''''expresiones booleanas o lógicas'''''( operador booleano AND, OR, NOT). Su evaluación me da un valor booleano (VEDAD o FALSO) |
− | ** ''expresiones aritméticas ''operadores (+,-,*,/,MOD,) (SU EVALUACIÓN ME DA UN NÚMERO) | + | ** '''''expresiones aritméticas'''''operadores (+,-,*,/,MOD,) (SU EVALUACIÓN ME DA UN NÚMERO) |
− | ** ''expresiones de comparación ''(=,>,<,>=,<=,!=) (Su evaluación me dá un valor booleano VERDAD o FALSO) | + | ** '''''expresiones de comparación''''' (=,>,<,>=,<=,!=) (Su evaluación me dá un valor booleano VERDAD o FALSO) |
− | *'''Función o método''' que retorna dicho valor: Es un bloque de ejecución ''independiente'' que o bien lo escribo yo en otra parte de este bloque o bien ya está disponibles en el conjunto de funciones o bilbiotecas o API que el entorno me ofrece para utilizar directamente. Por ejemplo antes hemos escrito el método '''calculaEdad...''' | + | *'''''Función o método''''' que retorna dicho valor: Es un bloque de ejecución ''independiente'' que o bien lo escribo yo en otra parte de este bloque o bien ya está disponibles en el conjunto de funciones o bilbiotecas o API que el entorno me ofrece para utilizar directamente. Por ejemplo antes hemos escrito el método '''calculaEdad...''' |
+ | |||
==== Instrucciones de leer/escribir ==== | ==== Instrucciones de leer/escribir ==== | ||
*En realidad aquí depende de los lenguajes, algunos como Pascal y Modula tiene dentro del lenguaje una instrucción para visualizar un texto por la pantalla y otra para leerlo del teclado y asignárselo a una variable. Otros (la mayoría), como Java, C, python,... esta funcionalidad nos la brinda una función de una biblioteca que previamente debe ser cargada. | *En realidad aquí depende de los lenguajes, algunos como Pascal y Modula tiene dentro del lenguaje una instrucción para visualizar un texto por la pantalla y otra para leerlo del teclado y asignárselo a una variable. Otros (la mayoría), como Java, C, python,... esta funcionalidad nos la brinda una función de una biblioteca que previamente debe ser cargada. | ||
Línea 210: | Línea 229: | ||
</source> | </source> | ||
− | *En | + | *En php vamos a usar dos funciones para este cometido, aunque como veremos hay mas. |
− | ''''' | + | '''''echo''''' |
− | ''''' | + | '''''print''''' |
− | + | ||
===Estructuras Selectivas=== | ===Estructuras Selectivas=== | ||
− | *Las instrucciones que introducen las estructuras selectivas permiten ejecutar | + | *Las instrucciones que introducen las estructuras selectivas permiten ejecutar un bloque de instrucciones o no en función de que ocurra una situación o no ocurra. |
− | *a sintaxis de las instrucciones selectivas son | + | *La situación siempre va a ser evaluada como una expresiónn booleana |
+ | *La sintaxis de las instrucciones selectivas son | ||
si (condicion) entonces | si (condicion) entonces | ||
bloque | bloque | ||
Línea 224: | Línea 243: | ||
[[Archivo:seleccion_1.png]] | [[Archivo:seleccion_1.png]] | ||
<br /> | <br /> | ||
− | * | + | *Como hemos comenado ''condición'' es una ''expresión booleana'' que tras evaluarse obtenemos un valor '''''verdadero''''' o '''''falso'''''. |
*Este valor en los lenguajes de programación es '''''true''''' o '''''false''''' | *Este valor en los lenguajes de programación es '''''true''''' o '''''false''''' | ||
*alternativamente a esta estructura de control tenemos el sino | *alternativamente a esta estructura de control tenemos el sino | ||
Línea 234: | Línea 253: | ||
fin_si | fin_si | ||
</source> | </source> | ||
− | [[Archivo:seleccion_2.png]] | + | *Por ejemplo pedimos dos números para dividir, solo dividimos si el denominador es mayor que 0 |
+ | [[Archivo:seleccion_2.png|center]] | ||
<br /> | <br /> | ||
− | + | *Esta estructura selectiva puede adaptarse a tres situaciones, | |
+ | |||
+ | {{MRM_Actividad|Title=Situaciones para utilizar el if| | ||
+ | ;If simple | ||
+ | <source lang=php> | ||
+ | if (condicion_booleana) | ||
+ | { => Inicio de bloque if | ||
+ | Acciones | ||
+ | } => fin de bloque if | ||
+ | </source> | ||
+ | ;If/else (Evalúo una condición con dos posibilidades) | ||
+ | <source lang=php> | ||
+ | if (condicion_booleana) | ||
+ | { => Inicio de bloque if | ||
+ | Acciones o instrucciones | ||
+ | } => fin de bloque if | ||
+ | else //Es la situación complementaria | ||
+ | { => Inicio de bloque else | ||
+ | Acciones o instrucciones | ||
+ | } => Inicio de bloque else | ||
+ | </source> | ||
+ | ;If múltiple (Evalúo una condición con varias posibilidades) | ||
+ | <source lang=php> | ||
+ | if (condicion_booleana_1) | ||
+ | { => Inicio de bloque if | ||
+ | Acciones | ||
+ | } => fin de bloque if | ||
+ | elseif(condicion_booleana_2) | ||
+ | { | ||
+ | } | ||
+ | elseif(condicion_booleana_3) | ||
+ | { | ||
+ | } | ||
+ | else //Resto de situaciones | ||
+ | { | ||
+ | } | ||
+ | </source> | ||
+ | }} | ||
+ | |||
+ | |||
+ | |||
+ | ;If simple | ||
+ | [[Imagen:if_simple.png|center]] | ||
+ | <source lang=php> | ||
+ | </source> | ||
+ | {{MRM_Ejemplo| | ||
+ | ;Haz un programa que genere dos números y si el denominador es 0 que lo cambie por uno | ||
+ | ;Un programa que haga siempre la raiz de un número si el número es negativo, lo convierte a positivo y pone una i | ||
+ | Con expresiones booleanas compuestas | ||
+ | ;Genero una nota (1..10)y una edad (14..25) el programa me dirá la nota y la edad. Además si soy mayor de edad y he sacado más de 7 me felicitará con un mensaje. | ||
+ | ;Haz un programa que obtener una edad (1..120) y me diga si una persona es niño (1-11), adolescente (12-16) joven(17.19) adulto(20-80) o mayor (81-120) | ||
+ | }} | ||
+ | |||
+ | ;If completo (if/else) | ||
+ | [[Archivo:if_else.png]] | ||
+ | <source lang=php> | ||
+ | |||
+ | </source> | ||
+ | {{MRM_Ejemplo| | ||
+ | ;Haz un programa que genere dos números y si el denominador es 0 que lo cambie por uno | ||
+ | ;Un programa que haga siempre la raiz de un número si el número es negativo, lo convierte a positivo y pone una i | ||
+ | Con expresiones booleanas compuestas | ||
+ | ;Genero una nota (1..10)y una edad (14..25) el programa me dirá la nota y la edad. Además si soy mayor de edad y he sacado más de 7 me felicitará con un mensaje. | ||
+ | ;Haz un programa que obtener una edad (1..120) y me diga si una persona es niño (1-11), adolescente (12-16) joven(17.19) adulto(20-80) o mayor (81-120) | ||
+ | }} | ||
+ | ;If múltiple (if/elseif/elseif/.../else) | ||
+ | [[Archivo:if_else.png]] | ||
+ | [[Archivo:if_else2.png]] | ||
+ | [[Archivo:if_else_2.png]] | ||
+ | <source lang=php> | ||
+ | |||
+ | </source> | ||
+ | {{MRM_Ejemplo| | ||
+ | ;Haz un programa que genere dos números y si el denominador es 0 que lo cambie por uno | ||
+ | ;Un programa que haga siempre la raiz de un número si el número es negativo, lo convierte a positivo y pone una i | ||
+ | Con expresiones booleanas compuestas | ||
+ | ;Genero una nota (1..10)y una edad (14..25) el programa me dirá la nota y la edad. Además si soy mayor de edad y he sacado más de 7 me felicitará con un mensaje. | ||
+ | ;Haz un programa que obtener una edad (1..120) y me diga si una persona es niño (1-11), adolescente (12-16) joven(17.19) adulto(20-80) o mayor (81-120) | ||
+ | }} | ||
+ | |||
+ | |||
+ | |||
*Por ejemplo vamos a suponer que queremos ver en función de la edad si alguien es niño(0..11) adolescente(12-16), joven(17.. 29) adulto(30-65) o mayor 66.. | *Por ejemplo vamos a suponer que queremos ver en función de la edad si alguien es niño(0..11) adolescente(12-16), joven(17.. 29) adulto(30-65) o mayor 66.. | ||
<source = lang> | <source = lang> | ||
Línea 343: | Línea 444: | ||
fin_mientras | fin_mientras | ||
</source> | </source> | ||
− | *La implementación en | + | *La implementación en php sería |
<source lang=javascript> | <source lang=javascript> | ||
Línea 447: | Línea 548: | ||
fin | fin | ||
</source> | </source> | ||
− | *En | + | *En php esta estructura de control es la siguiente |
<source lang=javascript> | <source lang=javascript> | ||
for (var n=0; n>10; n++){ | for (var n=0; n>10; n++){ | ||
Línea 521: | Línea 622: | ||
</div> | </div> | ||
|} | |} | ||
+ | </div> |
Última revisión de 01:27 22 ene 2019
ContenidoProgramando
Algunas conceptos previas
Estructras de controlEstructura secuencialConsiste en poner una instrucción detrás de otras. El orden de ejecución es secuncial y en orden (Excepción a esta regla los procesadores fuera de orden e instrucciones independientes).
Un programa
Instrucciones secuenciales
Instrucción inicio/fin de bloqueUn programa es un bloque de instrucciones que tiene un inicio y un fin. Dentro de este bloque puede haber muchos bloques. Siempre cada bloque empezará y terminará con una instrucción de inicio /fin bloque respectivamente.
programa MiPrograma
inicio
bloque_dentro_de_mi_programa
inicio
instruciones
fin
...
instrucciones
fin
function bloque_principal() { function otro_bloque_B() { //instricciones_bloque_B } //instrucciones del bloque princial }
Instrucción de declaraciónSirve para declarar elementos dentro del programa En un programa se pueden declarar
Identificador
$[a..zA..Z|_][a..zA..Z|_|0..9]*
Veamos ejemplos de declaración de variables Plantilla:Punto Clave //Declaramos tres variables (edad, nombre, raiz) de los tipos que precede (entero, string o cadena de caracteres y real o float) int edad; String nombre; float raiz;
const IVA = 3.14; const MESES = 12; //Defino una constante { const IVA = 3.14; const MESES = 12; const pi = 3.1416; define (IDENTIFICADO, valor); // … mas instrucciones } Instrucción de asignaciónConsiste en asignar un valor a una variable a = valor La parte de la izquierda siempre será una variable posición de memoria donde almacenaré el valor valor se puede expresar de diferentes maneras:
Instrucciones de leer/escribir
visualizar(”cadena de caracteres , valor de variable” + variable+”expresion)
leer(variable);
void MiPrograma principio visualizar (“Introduce tu edad”); leer edad; visualizar (“Tu edad es de”+ edad); fin
echo print Estructuras Selectivas
si (condicion) entonces bloque fin_si
si (condicion) entonces bloque_1 si_no bloque_2 fin_si
Archivo:If else.png Archivo:If else2.png
Idioma no válido. Necesita especificar un idioma como esto: <source lang="html4strict">...</source> lenguajes soportados para sintaxis remarcada: 4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, arm, asm, asp, asymptote, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcl, dcpu16, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, freeswitch, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, haxe, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, ldif, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, nagios, netrexx, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, octave, oobas, oorexx, oracle11, oracle8, oxygene, oz, parasail, parigp, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, pys60, python, q, qbasic, rails, rebol, reg, rexx, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, spark, sparql, sql, stonescript, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, upc, urbi, uscript, vala, vb, vbnet, vedit, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic programa di_situacion_edad inicio int edad visualizar 'dime tu edad' leer (edad); si (edad<=11) entonces visualizar 'Que bien, eres un niño'); fin_si si(edad <= 16) entonces visualizar 'No te enfades demasiado, Ya eres un adolencente'); fin_si si(edad <= 29) entonces visualizar 'Ahora eres un joven lábrate el futuro'); fin_si si(edad <= 65) entonces visualizar 'Ya eres todo un adulto'); fin_si si(edad >65) entonces visualizar 'Eres mayor, !Cuantas cosas has hecho!, Disfruta de la vida'); fin_si fin
Alternativa a la estructura de control si
caso_opcion variable caso: valor1 bloque1 caso: valor2 bloque2 caso: valor3 bloque3 caso: valor4 bloque4 defecto: bloque_otro_caso fin_caso
programa di_situacion_edad inicio int edad visualizar 'dime tu edad' leer (edad); caso_opcion edad caso <=11 visualizar 'Que bien, eres un niño'); caso <= 16) entonces visualizar 'No te enfades demasiado, Ya eres un adolencente'); caso <= 29) entonces visualizar 'Ahora eres un joven lábrate el futuro'); caso <= 65) entonces visualizar 'Ya eres todo un adulto'); defecto visualizar 'Eres mayor, !Cuantas cosas has hecho!, Disfruta de la vida'); fin_caso fin
caso_opcion (true){ ....... }
caso_opcion (true){ caso (edad<=11): visualizar 'Que bien, eres un niño'); caso (edad<= 16) entonces visualizar 'No te enfades demasiado, Ya eres un adolencente'); caso (edad<= 29) entonces visualizar 'Ahora eres un joven lábrate el futuro'); caso (edad<= 65) entonces visualizar 'Ya eres todo un adulto'); defecto visualizar 'Eres mayor, !Cuantas cosas has hecho!, Disfruta de la vida'); fin_caso }
Estructuras Iterativas o repetitivas
algorítmicamente sería mientras (condición) hacer bloque_instrucciones fin_mientras
Reglas de oro para realizar bucles
consite en tener cuidado con la condición <, <=... por ejemplo si quiero visualizar la tabla de multiplicar normal 2*1... 2*10 programa Error_mientras_3 inicio int veces; int tabla; veces = 1 visualizar 'dime un número para sacar su tabla de multiplicar' Leer (tabla); mientras veces < 10 hacer visualizar (tabla +'*'+ veces +'='+tabla*veces); veces = veces+1; fin_mientras
2*1=2 2*2=4,.. 2*9=18
Tipos de buclesEn realidad cualquier situación iterativa se puede hacer con la estructura mientras vista anteriormente. pero existen situaciones en las que ya sabemos de antemano antes de ejecutar el bucle cuantas veces lo vamos a hacer.
Para esta situaciones esta la estructura de control para que a continuación exponemos como en el caso anterior con la tabla de multiplicar programa Iteracion_Para inicio int veces; int tabla; visualizar 'dime un número para sacar su tabla de multiplicar' Leer (tabla); para veces = 1 hasta veces = 10 hacer visualizar (tabla +'*'+ veces +'='+tabla*veces); fin_para
programa Iteracion_para_2 inicio int numNumeros; int numero; int total = 0; visualizar 'dime hasta que número quieres sumar' Leer (numNumeros); para numero = 1 hasta numero = numNumeros hacer total=total+numero fin_para visualizar 'el sumatorio desde 1 hasta'+numNumeros+'es'+total fin
for (var n=0; n>10; n++){ }
programa Iteracion_hacer_1 inicio caracter seguir hacer visualizar 'dime tu edad' Leer (edad); visualizar ' te faltan '+(65-edad)+'años para jubilarte'; visualizar 'quieres seguir' leer (seguir); hasta que seguir ='n';
LENGUAJES DE PROGRAMACION
Niveles de lenguajesEn función de la proximidad de compresión del lenguaje al lenguaje humano se puede hablar de tres niveles de lenguajes de programación.
Conjunto de 0'1 y 1's que corresponden a códigos binarios que el procesador es capaz de entender y ejecutar
Proceso de transformaciónEntendemos por tal el hecho de pasar de código de alto nivel a código máquina. Este proceso puede ser una mera traducción como es el caso de pasar de ensamblador a código máquina, o ser un proceso más complejo. Lenguajes compiladosgenerando primero el obj que es binario, pero aún falta enlazar librerías y resolver direccionamiento relativo a direecionamiento absoluto. esta tarea la hace el link que genera el .exe
EjemplosExisten diferentes modos de expresar un algoritmo Por ejemplo con un ordinograma como la siguiente imagen o seudocódigo como ya hemos visto
'DIVIDE Y VENCERAS'
La programación de clases se realiza con programación estructurada y modular, por lo que debemos de saber programar de forma estructurada y modular |