Translate/Traductor

martes, 20 de agosto de 2013

ciclos en programacion

según esta pagina http://www.programacionfacil.com/cpp:ciclo_for
El ciclo for se usa:
Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones, sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instrucción simple o compuesta.
Su formato general es:
for (inicialización; condición; incremento)
{ instrucción(es); };
ejemplo:


for(x=1;x10;x=x+1)
{ puts(” MAMA ”); };


En su forma simple la inicialización es una instrucción de asignación que carga la variable de control de ciclo con un valor inicial.
La condición es una expresión relacional que evalúa la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo.
El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo.
Se deben separar esos 3 argumentos con punto y coma (;)
EJEMPLO
Codigo prog6.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();

// declaracion variables

int x;

// instruccion for

for(x=1;x<=10;x=x+1)

{ gotoxy(10, x+4); printf("%d MAMA",x); };

getchar();

}

corrida:
Descripción: image197.jpg
Casos Particulares del ciclo for;
1.- El ciclo comienza en uno y se incrementa de uno en uno este es el caso mas general.
2.- Pero el valor inicial puede se diferente de uno, ejemplo;
for(x=5;x15;x=x+1){ etc.};
3.- Incluso el valor inicial puede ser negativo, ejemplo;
for (x = -3 ;x 8; x=x+1) { etc.};
4.- Los incrementos también pueden ser diferentes al de uno en uno, ej.;
for (x=1; x 20; x=x+3){ etc. };
5.- Incluso pueden ser decrementos, solo que en este caso, recordar;
5.1.-el valor inicial de la variable debe ser mayor que el valor final.
5.2.-cambiar el sentido de la condición.
ejemplo;



for (x= 50 ; x >= 10; x= x-4 ) { etcétera };


SEGUN  ESTA PAGINA http://fismat.umich.mx/mn1/tutor_fort/loops.html  Los Ciclos sirven :


Para la repetir la ejecución de sentencias se usan los ciclos. Si se esta familiarizado con otros lenguajes de programación se habrá escuchado de los ciclos-for y de los ciclos-until, Fortran 77 tiene solamente una construcción de ciclo, conocida como el ciclodo. El ciclo-do corresponde al ciclo-for que existe en otros lenguajes de programación. Otros ciclos pueden ser simulados usando las sentencias if y goto.
Ciclos-do
El ciclo-do es usado para repetir un conjunto de sentencias una determinada cantidad de veces. Se muestra el siguiente ejemplo donde se calcula la suma de los enteros desde el 1 hasta n (suponiendo que a nse le ha asignado un valor previamente):
      integer i, n, suma
      :
      :
      :
      suma = 0
      do 10 i = 1, n
         suma = suma + i
         write(*,*) 'i =', i
         write(*,*) 'suma =', suma
   10 continue
El número 10 es una sentencia de etiqueta. Típicamente, podría haber varios ciclos y otras sentencias en un programa que requierean una sentencia de etiqueta. El programador es responsable de asignar un número único a cada etiqueta en cada programa (o subprograma). Recordar que las posiciones de las columnas 2-5 son reservadas para sentencias de etiquetas. El valor numérico de las sentencias de etiqueta no tienen ningún significado, por lo que cualquier valor entero puede ser usado. Por lo general, los programadores incrementan las etiquetas de 10 en 10 cada vez.
La variable en la sentencia do es incrementada en 1 por default. Sin embargo, se puede usar cualquier otro entero para el paso o incremento. El siguiente segmento de programa muestra los números pares en forma decreciente entre el 1 y 10:
      integer i

      do 20 i = 10, 1, -2
         write(*,*) 'i =', i
   20 continue
La forma general del ciclo do es la siguiente:
      do etiqueta  var =  expr1, expr2, expr3
         sentencias
 etiq continue
donde:
var es la variable del ciclo (conocida con frecuencia como el índice del ciclo) el cual deberá ser del tipo integer.
expr1 indica el valor inicial de var,
expr2 es el valor hasta el que llegará el índice, y
expr3 es el incremento (step).
Nota: La variable del ciclo do nunca deberá ser modificada por otras sentencias dentro del ciclo, ya que puede generar errores de lógica.
Muchos compiladores de Fortran 77 permiten que los ciclos do sean cerrados por la sentencia enddo. La ventaja es que la sentencia etiqueta puede ser omitida, ya que en este caso la sentencia enddo cierra la sentencia do más cercana. La construcción enddo es ampliamente usada, pero no es parte del ANSI Fortran 77.
Ciclos while
La forma más intuitiva para escribir un ciclo while es
      while (expr lógica) do
         sentencias
      enddo
o de forma alterna
      do while (expr lógica)
         sentencias
      enddo
Las sentencias en el cuerpo serán repetidas mientras la condición en el ciclo while sea verdadera. A pesar de que esta sintaxis es aceptada por muchos compiladores (incluyendo el de Linux), no forma parte del ANSI Fortran 77. La forma correcta es usando las sentencias if y goto:
 etiq if (expr lógica) then
         sentencias
         goto etiq
      endif
A continuación se tiene un ejemplo que calcula y muestra el doble de todos los número anterior comenzando con el 2 y que son menores a 100:
      integer n
      n = 1
   10 if (n .lt. 100) then
         n = 2*n
         write (*,*) n
         goto 10
      endif
Ciclos-until
Es un ciclo el cual el criterio de terminación esta al final en vez del inicio. En pseudocódigo tendríamos el siguiente formato:
      haz
         sentencias
      hasta (expr lógica)
lo cual nuevamente, puede ser implementado en Fortran 77 usando las sentencias if y goto:

 etiq continue


en resumidas cuentas :

Un ciclo Do se puede usar para ejecutar un bloque de enunciados fijo, una cantidad infinita de veces.
Existen 4 tipos diferentes de ciclos Do
Tipo de ciclo Do
Explicación
Ejemplo
Do While … Loop
Do While ... Loop evalúa la condición y si ésta es verdadera, entonces evalúa los enunciados que siguen a la condición.
Al terminar de hacer esto, evalúa nuevamente la condición y si ésta es verdadera, vuelve a evaluar los enunciados.
Continúa repitiendo este proceso hasta que la condición sea falsa.
Do While condition
statements
Loop
Do Until ... Loop
Do Until ... Loop es similar a Do While ... Loop con la excepción de que sigue evaluando los enunciados hasta que la condición es verdadera en vez de que mientras sea verdadera.
Do Until condition
statements
Loop
Do ... Loop While
Do ... Loop While evalúa los enunciados solamente una vez.
Luego evalúa la condición y si ésta es verdadera, evalúa nuevamente los enunciados. Este proceso continúa hasta que la condición sea falsa.
Do
statements
Loop While condition
Do ... Loop Until
Similar a Do ... Loop While excepto que evalúa los enunciados hasta que la condición sea verdadera.
Do
statements
Loop Until condition
Descripción: NoteNota
Los ciclos Do admiten un enunciado Exit Do para salir inmediatamente del ciclo. La expresión Exit Do es similar a Exit For en los ciclos For/Next.
Ejemplo de fórmula Do While ... Loop
El siguiente ejemplo  la primera repetición de un dígito en una cadena de entrada. Si encuentra un dígito, devuelve su posición; de lo contrario, devuelve -1. En este caso, la cadena de entrada se establece explícitamente en una constante de cadena, pero podría establecerse igualmente en un campo de base de datos de tipo de cadena.
Por ejemplo, para la cadena de entrada, "The 7 Dwarves", la fórmula devuelve 5, que es la posición del dígito 7.

Dim inString
inString = "The 7 Dwarves"
Dim i, strLen
i = 1
strLen = Len (inString)
formula = -1
Do While i <= strLen And formula = -1
Dim c As String
c = Mid (inString, i, 1)
If IsNumeric (c) Then formula = i
i = i + 1
Loop


CICLO DO WHILE C++


Su diferencia básica con el ciclo while es que la prueba de condición es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evalúa la condición;
También se le conoce por esta razón como ciclo de condición de salida.
Su formato general es :
cargar o inicializar variable de condición;
do {
grupo cierto de instrucción(es);
instrucción(es) de rompimiento de ciclo;
} while (condición);
prog8.cpp

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();

// declaracion variables

int x=1;

// instruccion do while

do{

gotoxy(10, x+3); printf("%d GATO",x);

x++; } while(x<=10);

getchar();

}

Corrida prog
Descripción: image199.jpg

Otra diferencia básica con el ciclo while es que, aunque la condición sea falsa desde un principio el cuerpo de instrucciones se ejecutara por lo menos una vez.

domingo, 18 de agosto de 2013

Sentencias


Sentencias:
Una sentencia es cada una de las instrucciones que componen un programa.       Las sentencias más simples que forman un programa son las asignaciones, la entrada y la salida.    La entrada es la parte del programa en que el usuario ingresa datos. La salida es la parte del programa en que los resultados son entregados al usuario.                                                                          
En un programa, las sentencias deben estar separadas por punto y coma.
Sentencias simples son las que no contienen ninguna otra sentencia
                                                  Descripción: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkxbArKVVmqf59M-MSGCsJo5j0naXRPyHQOueTVBVYr_z2iH5ZuH6o8I3bsIFTRPp6LVg87ZAKK-hyRZQSLYK33y9Y1hwjUUdSsVhTLKL34WPQEdu8247uBH52Dds7ch_YrJkwMh6H2oc/s1600/SentAsig.JPG
Las sentencias son los elementos básicos en los que se divide el código en un lenguaje de programación. Al fin y al cabo, un programa no es más que un conjunto de sentencias que se ejecutan para realizar una cierta tarea. Además, como ya habrás visto, en Pascal el signo que las separa es el punto y coma.
El parrafo anterior termina con una verdad a medias, ya que aunque generalmente una sentencia debe ir seguida de un punto y coma para separarla de la siguiente, existen casos en los que no es necesario incluirlo. Y estos casos se dan cuando después de la sentencia hay una palabra reservada de las que delimitan de alguna forma un trozo de código. Por ejemplo, end, else, until, etc. Algunos de estos casos se contemplan en el siguiente ejemplo: 
   (* ... *)
   begin
      (* ... *)
      if (a<>b) then
        begin
           aux := a ;
           a := b ;
           b := aux
        end ;
      writeln('a vale ',a,' y b vale ',b)
   end .
                                                            

Las sentencias como casi todas las cosas, se dividen en simples y estructuradas. Las simples serán las que tratemos en este tema, dejando para el siguiente las estructuradas.
Este tema debería ser de repaso, pues lo que aquí se cuenta ya se ha mencionado a lo largo del tutorial. Pues, sentencias de asignación, expresiones y operadores seguro que ya te suenan y que sabes lo que son. Por otro lado, a las llamadas a procedimientos, que son otro tipo de sentencias simples, ya se les dedica un tema completo.

Sentencias dobles:
Las estructuras de decisión doble permiten ejecutar dos conjuntos de sentencias alternativos en función del resultado de la evaluación de una condición lógica.
Si el resultado es “cierto” se ejecuta un grupo de sentencias. Si el resultado es “falso” se ejecuta otro grupo de sentencias.
EJEMPLO

En Pseudocódigo
Si (decisión) entonces            Si (edad < 18) entonces

    Sentencias....                           Escribir ('no puede votar')
Si no                                       Sino
    Sentencias....                           Escribir ('Si puede Votar')
fin si                                        Fin si

Sentencias Múltiples en MySQL
MySQL permite opcionalmente tener múltiples sentencias en una cadena de sentencias. El envío de múltiples sentencias de una sola vez reduce los viajes de ida y vuelta desde el cliente al servidor, pero requiere un manejo especial.
Las sentencias múltiples o multi consultas deben ser ejecutadas con mysqli_multi_query). Las sentencias individuales de la cadena de sentencias están separadas por un punto y coma. Entonces, todos los conjuntos de resultados devueltos por las sentencias ejecutadas deben ser obtenidos.
El servidor MySQL permite tener sentencias que devuelven conjuntos de resultados y sentencias que no devuelve conjuntos de resultados en una sentencia múltiple.
Dentro del conjunto de las selectivas se incluye la que algunos autores llaman selectiva múltiple. Esta permite seleccionar la ejecución de una sentencia entre más de dos alternativas. A diferencia de las selectivas anteriores, en vez de una condición se evalúa una expresión que da como resultado un valor de tipo ordinal, un entero o carácter. Una vez obtenido este valor, que llamaremos selector, se compara con los distintos valores de las distintas alternativas. Cada una de estas alternativas tiene asociada una sentencia, simple o compuesta. En el momento que coincida el valor del selector, se ejecuta la sentencia asociada a esa alternativa y termina la ejecución de la selectiva múltiple, continuando la ejecución del programa al final de esta. Si terminamos de comparar todas las alternativas y no coincide con ninguna, se ejecuta lo que se conoce como acción o sentencia por defecto. Esta sentencia se puede omitir. Este comportamiento se refleja con el siguiente diagrama de flujo:
Descripción: Selectiva Multiple
En esta figura:
En el rombo se evalúa la expresión, obteniendo el selector.
El selector se va comparando con las listas de valores que tenemos en cada uno de los brazos de la selectiva múltiple.

En el momento que coincida con alguno de ellos, se ejecutan las sentencias que hay en esa rama y se salta el resto de la estructura. Si el selector no coincide con ninguno de los valores de los brazos, se ejecutan las sentencias por defecto, que como observamos se representa como última opción.