Tercera clase: Control de flujo del programa. - Arreglos. - Control de flujo repetitivo.

Slides:



Advertisements
Presentaciones similares
Sesión 3 Estructuras Repetitivas
Advertisements

Pippy (Python para niños)‏ 1.
Estructuras Repetitivas para
Clase 2 Tipos de datos Asignación de valores Estructura IF Ejercicios
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Estructuras de Repetición Algoritmos
PHP-MYSQL OPERADORES EN PHP
Seminario de Actualización - Excel Avanzado y Macros
Estructuras de Control
1.5 Algoritmos, Pseudocódigo y Diagramas de Flujo
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
CICLOS EN C.
Estructuras de control
Estructuras de Repetición
INTRODUCCIÓN A LA COMPUTACIÓN 14va Semana – 24va Sesión Miércoles 01 de Junio del 2005 Juan José Montero Román
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Estructuras de repetición
PSEUDOCÓDIGO. DISEÑO ESTRUCTURADO USANDO HERRAMIENTAS DE REPRESENTACIÓN DE ALGORITMOS.
Fundamentos de Programación

Son aquellas que van a ejecutar un número determinado de veces una instrucción o un conjunto de ellas. Un BUCLE O CICLO son las instrucciones a repetirse.
Ingeniero Anyelo Quintero
ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA
Estructuras de Control de Repetición
ESTRUCTURAS ITERATIVAS
Programación de Computadores
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
Programación II Ing. Diego J. Arcusin 8 – Perl.
ESTRUCTURAS DO-WHILE Y FOR.
Capítulo 1 “Elementos de Programación”
WHILE Estructuras Repetitivas
Informática Tema 5 - Estructuras de Control Estructuras de Repetición.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Informática Ingeniería en Electrónica y Automática Industrial
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Teoría – Alejandro Gonzalez
Estructura de Control Repeticiones(Loops) Ejercicios
ESTRUCTURAS REPETITIVAS

REPETITIVAS (CÍCLICAS)
2008 Escuela de Informática y Telecomunicaciones, DuocUC Escuela de Informática y Telecomunicaciones Clase 8: Control del flujo en BASH Nombre unidad de.
While En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte.
Sentencias de repetición
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
Estructuras repetitivas e iterativas  Son herramientas que permiten ejecutar operaciones que se deben aplicar un número repetido de veces. El conjunto.
Programación Básica con NQC Patricio A. Castillo 10/05/2008.
Estructuras de repetición
Sesión 13: Python (4) – Estructura Repetición. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Estructuras de Control en Visual Basic.net
“variables , sentencia if y bucles”
ESTRUCTURAS REPETITIVAS
Carolina Galaviz Inzunza CBTIS No. 37.  Este ciclo se repite durante una cantidad definida de iteraciones, por lo que no depende de las acciones.
Práctica Profesional PHP.
Estructuras de Decisión
2011/1 - CLASE 12. AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 14 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados.
Estructuras de Control
Las funciones son librerías ya estandarizadas que permiten al usuario realizar sus respectivas programaciones. Una función es un conjunto de líneas de.
ESTRUCTURA DE CONTROL REPETITIVAS: WHILE, DO… WHILE
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Programación Básica Bachillerato Ingeniería en Informática Lic. Carlos H. Gutiérrez León.
Ciclos en Visual Basic Yaimira Pérez. Los ciclos son estructuras de repetición que ejecutan una o varias instrucciones durante la cantidad de veces que.
Tipos de ciclos en Visual Basic. Dinámicos y fijos. 6.1 Foro. Wuilson Valencia, Desarrollo de aplicaciones I y Laboratorio. 1.
Tema 8: Programación estructurada Introducción La importancia del conocimiento de programación es mucho mayor de lo que se piensa. Aprender a programar.
CICLOS ESTRUCTURA DE REPETICIÓN PROG 2270LGUILLERMO SOLLA.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
Ciclos de Repeticion Yoel Gutierrez Unidad 6. Contenido DefinicionExplicacionEjemplosReferencias.
Ciclos condicionales y exactos Estructura de control de ciclos
Estructuras Repetitivas Consideraciones. Estructuras Repetitivas  Son aquellas que van a ejecutar un número determinado de veces una instrucción o un.
Transcripción de la presentación:

Tercera clase: Control de flujo del programa. - Arreglos. - Control de flujo repetitivo.

OPERACIONES CON CADENAS =~ Este operador es usado en las expresiones regulares para indicar la presencia de un patrón de comparación dentro de una variable que contiene una cadena de caracteres. $variableobjetivo =~ /patron a buscar/ Para buscar la palabra ejemplo dentro de una cadena Seria: $cadena=“Este es un ejemplo de busqueda”; $cadena =~ /ejemplo/ #SI se encuentra patron $cadena =~ /ejemplar/ #NO se encuentra patron

#!/usr/bin/perl #eje00ifbusqueda.pl $dna="aggtttttttatcggcccc"; if ($dna =~ /atg/ ){ print "Contiene inicio de gen \n"; }else{ print "No se encuentra patron de inicio\n"; } Ejemplo: buscar el inicio del gen (atg) en una cadena de dna imprimir si este se encuentra o no.

ARREGLOS, LISTAS, Listas de variables escalares Es una lista de datos de tipo escalar. Cada elemento de la lista es una variable escalar a la que se le asocia un valor. Las variables de tipo array se identifican por el prefijo Por = (10, 34, 12, 23, 33.6, 14, = (”A", = ("proteina", 12, "dna",31.234);

Los elementos de un array se referencían mediante índices. El primer elemento se referencia por el índice 0. Por ejemplo: $numeros[1]; # vale 34 $aminoacidos[2]; # vale ”Y" $mezcla[0]; # vale ”proteína"

Como obtener el numero de elementos de un $ultimo_subindice=$#nucleotidos;

#!/usr/bin/perl = (10, 34, 12, 23, 33.6, 14, = ("perro", "gato", = ("proteina", 4523, "dna",31.234); print " $numeros[2] \n"; print " $animales[0]\n"; print " $mezcolanza[1] $mezcolanza[4] \n"; Ejemplo Arreglos, accediendo elementos en un programa.

Que imprime en pantalla este programa? #!/usr/bin/perl print "Secuencia Proteina $amino[3]$amino[0]$amino[0]\n"; print "Secuencia Proteina 3 $amino3[3]-$amino3[0]-$amino3[0]\n"; print "Secuencia RNA $codones[3]$codones[0]$codones[0]\n";

FUNCIONES ASOCIADAS A ARREGLOS Función push y pop. push y pop permiten respectivamente insertar y extraer el último elemento de un arreglo. Por push push tres unodostres unodostrescuatro unodostrescuatrocinco unodostrescuatro cinco

Ejemplo visto dentro de un programa perl: #!/usr/bin/perl print " Contenido de la \n"; #insertamos un elemento en el arreglo y lo imprimimos push print " Contenido de la \n"; push print " Contenido de la \n"; print " Valor extraido $elemento \n"; print " Contenido de la \n";

Las funciones shift y unshift permiten respectivamente suprimir e insertar el primer elemento de un arreglo. Por unshift unshift C D E B C D E A BC D E B C D E A

#!/usr/bin/perl print " Contenido de la \n"; #insertamos un elemento en el arreglo y lo imprimimos unshift print " Contenido de la \n"; unshift print " Contenido de la \n"; print " Valor extraido $elemento \n"; print " Contenido de la \n"; Ejemplo visto dentro de un programa perl:

La función reverse invierte los valores del array mientras que la función sort los ordena en G AD F T T FD A G A DF G T

#!/usr/bin/perl print " Contenido de la \n"; print " Contenido de la print " Contenido de la \n"; Ejemplo visto dentro de un programa perl:

Las funciones split y join permiten transformar una cadena en una lista de caracteres. = split(/expresión/, cadena) $cadena = Ejemplo: $dna2=join G AC G T GACGT G-A-C-G-T

Ejemplo visto dentro de un programa perl: #!/usr/bin/perl #eje06splitjoin.pl $dna="GACGT"; print " Contenido de la variable print " Contenido de la \n"; $dna2=join print "valor de la variable 2 $dna2\n";

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL CONDICIONALES

print “ Dame tu nombre \n“; $edad= ; If $edad>=18 { print “eres mayor de edad \n“; }else{ print “eres menor de edad \n“; } print “saliendo del programa “;

Las estructuras de control repetitivas permiten realizar un conjunto de sentencias ”N” veces, comúnmente se les llama ciclos, loop, bucles.

ESTRUCTURAS DE CONTROL REPETITIVAS

Condicion? verdadero falso Conjunto de instrucciones Representación de un ciclo mediante diagrama de flujo.

Cont=0 Cont<=0? Fin PCR Elevar temp 96 Descender temp 55 Elevar a 76 Incrementar Cont Verdad Falso Representacion de PCR en diagrama de flujo

Sentencias repetitivas en Perl: While Until For Foreach

Sintaxis sentencia While en pseudocodigo podría verse de la siguiente forma: Mientras (condicion sea verdadera) hacer{ todas las intrucciones contenidas en el bloque de intrucciones. }Fin bloque mientras

Sintaxis sentencia While: Mientras la condición sea verdadera entra al ciclo While (condicion){ instrucción 1; instrucción 2; instrucción N; }

Cont=0 Cont<=3 Fin PCR Elevar temp 96 Descender temp 55 Elevar a 76 Incrementar cont Verdadero Falso #!/usr/bin/perl #eje07pcrwhile.pl $cont=0; while ($cont < 30){ print “Elevando temp a 96\n”; print “descender temp a 55\n”; print “Elevando temp a 76\n”; $cont=$cont+1: } print “Finalizando PCR\n”; Ejemplo PCR en lenguaje de programación

Ejemplo 2 sentencia While. Leer una lista de números desde el teclado y sumar sus valores, hasta que se introduzca un numero negativo. #!/usr/bin/perl #eje08whileacumcont.pl $acumulador=0; $num_leido=0; while ($num_leido < 0){ print "Introduce un numero:"; $num_leido= ; $acumulador=$acumulador+$num_leido; }

Consideraciones importantes: -La condición debe tener un valor inicial, que asegure entrar al ciclo. -La condición debe ser modificada dentro del ciclo, para poder salir del ciclo. -Realizar la sangria de forma adecuada que permita la fácil lectura del programa.

#!/usr/bin/perl #eje08whileacumcont.pl $acumulador=0; $num_leido=0; while ($num_leido < 0){ print "Introduce un numero:"; $num_leido= ; $acumulador=$acumulador+$num_leido; } -La condición debe tener un valor inicial.

La condición debe ser modificada dentro del ciclo #!/usr/bin/perl $acumulador=0; $num_leido=0; while ($num_leido < 0){ print "Introduce un numero:"; $numero= ; $acumulador=$acumulador+$num_leido; }

Realizar la sangria de forma adecuada #!/usr/bin/perl $acum=0; $num_leido=0; while ($num_leido >= 0){ print "Introduce un numero:"; $numero= ; $acumulador=$acumulador+$num_leido;} #!/usr/bin/perl $acum=0; $num_leido=0; while ($num_leido >= 0){ print "Introduce un numero:"; $numero= ; $acumulador=$acumulador+$num_leido;}

#!/usr/bin/perl #eje08whileacumcont.pl $acum=0; $num_leido=0; while ($num_leido >= 0){ print "Introduce un numero:"; $numero= ; $acumulador=$acumulador+$num_leido; }#fin while #!/usr/bin/perl #eje08whileacumcont.pl $acum=0; $num_leido=0; while ($num_leido >= 0) { print "Introduce un numero:"; $numero= ; $acumulador=$acumulador+$num_leido; }#fin while Realizar la sangría de forma adecuada. CORRECTOS!!!

Ejercicio sentencia While. Leer una lista de números desde el teclado, sumar sus valores (excepto negativos), y obtener el promedio, hasta que se introduzca un numero negativo.

#!/usr/bin/perl #eje09whileleerpromedio.pl $acumulador=0; $num_leido=0; $contador_leidos=0; while ($num_leido >= 0){ print "Introduce un numero:"; $num_leido= ; if($num_leido>0){ $acumulador=$acumulador+$num_leido; $contador_leidos=$contador_leidos+1; } $promedio=$acumulador/$contador_leidos; print "Suma de numeros introducidos $acumulador\n"; print "Promedio: $promedio\n"; Ejercicio sentencia While. Leer una lista de números desde el teclado, sumar sus valores y obtener el promedio, hasta que se introduzca un numero negativo,.

Tarea 1 sentencia While. Almacenar en un arreglo las siguientes secuencias: gcgttaggacgtagctagctagctagctaattgggccc gcgaatgcatgcatgcattatacccacgatgcatcgat gcgaataattgcatgcatgcattatagctacgatgcat tacgtagaattcgatcgatgcatcgatctatagatgat acgtacgtacgatcgatgcatgacatgcaatttggtgg Determinar, si alguna de estas secuencias contienen alguna caja “tata” o el sitio de pegado de la enzima de restricción Ecori “aatt”, imprimir si alguna o ambas condiciones se prensentan en cada secuencia.

TAREA modificar el ejemplo anterior indicando en que posición de la cadena se encuentra la caja tata o el sitio de restricción, utilizando la funciones de arreglos revisadas anteriormente. TAREA modificar su ejemplo utilizando la función index.

Sintaxis sentencia Until: A diferencia del while, mientras la condición sea falsa entra al ciclo. until (condicion ){ instrucción 1; instrucción 2; instrucción N; }

#!/usr/bin/perl #eje09whileleerpromedio.pl $acumulador=0; $num_leido=0; while ($num_leido >= 0){ print "Introduce un numero:"; $num_leido= ; $acumulador=$acumulador+$num_leido; } #!/usr/bin/perl # eje10until.pl $acumulador=0; $num_leido=0; until ($num_leido < 0){ print "Introduce un numero:"; $num_leido= ; $acumulador=$acumulador+$num_leido; } print "Acumulador $acumulador\n"; while Until

Sintaxis sentencia foreach : Extrae el contenido del arreglo, agregándolo a la variable, el cual puede se utilizado dentro del ciclo. foreach variable ( lista ){ instrucción 1; instrucción 2; instrucción N; } Existen elementos en lista? verdadero falso Extrae elemento asignalo a variable T FD A G

#!/usr/bin/perl foreach $n print "nombre: $n \n"; }#for Ejemplo : Definir una lista y acceder a elle mediante ciclo foreach.

Ejemplo N: Leer una secuencia de dna del teclado, contar e imprimir la cantidad de nucleótidos a,g,c,t (cuantos de cada uno) se introdujeron, imprimir también cuantos inválidos se introdujeron.

# eje12foreachcontnucleotidos.pl $cont_g=0; $cont_a=0; $cont_t=0; $novalidos=0; print "Introduce una secuencia de dna :"; $dna= foreach $nucleotido print "Nucleotido $nucleotido \n"; if ( ($nucleotido eq 'a') or ($nucleotido eq 'A')){ $cont_a++; }elsif( ($nucleotido eq 'g') or ($nucleotido eq 'G')){ $cont_g++; }elsif( ($nucleotido eq 'c') or ($nucleotido eq 'C')){ $cont_c++; }elsif( ($nucleotido eq 't') or ($nucleotido eq 'T')){ $cont_t++; }else{ $novalidos++; }

TAREA N: Lo mismo que el ejemplo anterior, pero ahora calcular porcentaje de GCs tiene la secuencia, así como porcentajes de ATs contiene la misma

TAREA N: Lo mismo que el ejemplo anterior, pero ahora calcular porcentaje de GCs tiene la secuencia, asi como porcentajes de ATs contiene la misma

Sintaxis sentencia for : for (expresion inicial; condición de repeticion; incremento){ instrucción 1; instrucción 2; instrucción N; }

Sintaxis sentencia for : for (expresion inicial; condición de repeticion; incremento){ instrucción 1; instrucción 2; instrucción N; }

#!/usr/bin/perl #eje13for.pl for ($cont=1 ; $cont <=10 ; $cont++){ print "Valor de cont $cont \n"; }#for Ejemplo 4 for:

#!/usr/bin/perl #eje14forpcr.pl for ($cont=0 ; $cont < 30 ; $cont++){ print "*** Estamos en el ciclo $cont*** \n"; print "Elevando temp a 96 \n"; print "Descender temp a 55 temp a 96 \n"; print "Elevando temp a 76 \n"; }#for print "Finalizando PCR\n”; Ejemplo 5 el ciclo de PCR:

$ultimo_subindice=$#nombres; print "Numero de elementos: $num_elementos \n"; print "Ultimo subindice: $ultimo_subindice \n"; for ($i=0 ; $i<$num_elementos ; $i++){ print "$nombres[$i] \n"; }#for Ejemplo : Definir una lista y acceder a elle mediante ciclo for.

Ejemplo N: Leer una secuencia de dna del teclado, contar e imprimir la cantidad de nucleótidos a,g,c,t (cuantos de cada uno) se introdujeron, imprimir también cuantos inválidos se introdujeron, realizar el ejemplo con el ciclo for.

# eje15forcontnucleotidos.pl $cont_c=0; $cont_g=0; $cont_a=0; $cont_t=0; $novalidos=0; print "Introduce una secuencia de dna :"; $dna= for($i=0;$i<$numero_elementos;$i++){ $nucleotido=$lista[$i]; print "Nucleotido $nucleotido \n"; if ( ($nucleotido eq 'a') or ($nucleotido eq 'A')){ $cont_a++; }elsif( ($nucleotido eq 'g') or ($nucleotido eq 'G')){ $cont_g++; }elsif( ($nucleotido eq 'c') or ($nucleotido eq 'C')){ $cont_c++; }elsif( ($nucleotido eq 't') or ($nucleotido eq 'T')){ $cont_t++; }else{ $novalidos++; }

Sintaxis sentencia do while : Se ejecuta el ciclo al menos una vez, se repite el ciclo si la condición es VERDAD. do{ instrucción 1; instrucción 2; instrucción N; }while(condicion);

Sintaxis sentencia do until : Se ejecuta el ciclo al menos una vez, si la condición es FALSA el ciclo se repite. do{ instrucción 1; instrucción 2; instrucción N; }until(condicion);

#!/usr/bin/perl #eje16dowhile.pl $cont=1; do{ print ”Num de ciclo $cont \n"; $cont++; }while ($cont <=10); print "Fin de ciclo\n"; #!/usr/bin/perl #eje17dountil.pl $cont=1; do{ print ”Num de ciclo $cont \n"; $cont++; }until ($cont >10); print "Fin de ciclo\n"; do whiledo until

LAST #eje18last.pl $cont=0; while ($cont <30 ){ print "*** Estamos en el ciclo $cont*** \n"; print "Elevando temp a 96 \n"; print "Descender temp a 55 temp a 96 \n"; print "Elevando temp a 76 \n"; $cont=$cont+1; if ($cont == 3){ last; }#if }#for print "Finalizando PCR\n"; La instrucción last interrumpe la ejecución de la iteración actual y se ejecuta la instrucción que sigue al bloque.

NEXT #eje19next.pl $cont=0; while ($cont <5 ){ if ($cont == 2){ $cont=$cont+1; next; }#if print "*** Estamos en el ciclo $cont*** \n"; print "Elevando temp a 96 \n"; print "Descender temp a 55 temp a 96 \n"; print "Elevando temp a 76 \n"; $cont=$cont+1; }#for print "Finalizando PCR\n" La instrucción next interrumpe la ejecución del bloque de instrucción actual y prosigue la ejecución en la iteración siguente