miércoles, 18 de julio de 2012

Ciclo Mientras Que


Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso
EJEMPLO 1: Calcular y escribir los cuadrados de una serie de números distintos de 0 leídos desde el teclado.
Inicio
Leer num
Mientras num <> 0 hacer
cuadrado← num*num
Escribir ¨cuadrado¨
Leer num
fin_mientras
Fin

EJEMPLO 2:
Algoritmo que lee un número y calcule si es par o impar.
Inicio
Escriba ¨Digite un número¨
Lea num
I←1
Mientras (I ≤ 50)
Si (num mod/2) entonces
Escriba ¨El numero es par¨
Si no
Escriba ¨El numero es impar¨
Fin si
Lea num
I = I + 1
Fin mientras que
Fin

Ciclo Haga Hasta o Repita Hasta


Esta es una estructura similar en algunas características, a la anterior. Repite un proceso una cantidad de veces, pero a diferencia del Hacer-Mientras, el Repetir-Hasta lo hace hasta que la condición se cumple y no mientras, como en el Hacer-Mientras. Por otra parte, esta estructura permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso, mientras que en el Hacer-Mientras puede ser que nunca llegue a entrar si la condición no se cumple desde un principio.
EJEMPLO 1: Algoritmo que calcule la suma de los 50 primeros números enteros.
Inicio
Suma ← 0
Conta ← 0
Repetir
Conta ← conta + 1
Suma ←suma + conta
Hasta que conta= 50
Escribir ¨suma¨
Fin

EJEMPLO 2:
Se desea obtener los cuadrados de todos los números leídos desde un archivo hasta que se encuentre el número 0.
Inicio
Repetir
Leer ¨archivo, num¨
Si num<> 0 entonces
Escribir ¨num ^ 2¨
Fin si
Hasta que num= 0
Fin

Sintaxis Del Lenguaje c++

C++ es considerado un C más grande y potente. La sintaxis de C++ es una extensión de C, al que se han añadido
numerosas propiedades, fundamentalmente orientada a objetos. ANSI C ya adoptó numerosas características de C++, por lo que la
migración de C a C++ no suele ser difícil.
En este apéndice se muestran las reglas de sintaxis del estándar clásico de C++ recogidas en al Annotated Manual (ARM) de
Stroustrup y Ellis, así como las últimas propuestas incorporadas al nuevo borrador de C++ ANSI, que se incluyen en las versiones 3
(actual) y 4 (futura de AT&T C++).
B.1. ELEMENTOS DEL LENGUAJE
Un programa en C++ es una secuencia de caracteres que se agrupan en componentes léxicos (tokens) que comprenden el vocabulario
básico del lenguaje. Estos componentes de léxico son: palabras reservadas, identificadores, constantes, constantes de cadena,
operadores y signos de puntuación.
B.1.1. Caracteres
Los caracteres que se pueden utilizar para construir elementos del lenguaje (componentes léxicos o tokens) son:
abcdefghi jklmnopqrstuvwxyz
ABCDEFCHIJKLMNOPQRSTUVWXYZ
0123456789
caracteres espacio (blancos y tabulaciones)
B.1.2. Comentarios
C++ soporta dos tipos de comentarios. Las líneas de comentarios al estilo C y C ANSI, tal como:
/* Comentario estilo C */
/* Comentario mas extenso, pero también es estilo C y ANSI C */
El otro tipo de comentarios se pueden utilizar por los programadores de C++: La versión /*...* / se utiliza para comentarios que
excedan una línea de longitud y la versión //...se utiliza, sólo, para comentarios de una línea. Los comentarios no se anidan.
B.1.3. Identificadores
Los identificadores (nombres de variables, constantes,...) deben comenzar con una letra del alfabeto (mayúscula o minúscula) o con
un carácter subrayado, y pueden tener uno o más caracteres. Los caracteres segundo y posteriores pueden ser: letras, dígitos o un
subrayado, no permitiéndose caracteres no alfanuméricos ni espacios.
tescprueba // legal
Xl23 // legal
multi_palabra // legal
var25 // legal
l5var // no legal
C++ es sensible a las mayúsculas.
Paga_mes es un identificador distinto a paga_mes
Una buena práctica de programación aconseja utilizar identificadores significativos que ayudan a documentar un programa.
nombre apellidos salario precio_netoPágina 4 de 28
B.1.4.Palabras reservadas
Las palabras reservadas o claves no se deben utilizar como identificadores, debido a su significado estricto en C++; tampoco se
deben redefinir. La Tabla B. 1 enumera las palabras reservadas de C++ según el ARM(Siglas del libro de BJARNE

Variables Contadoras


Como su nombre lo indica estas variables se usan fundamentalmente para contar, por lo tanto deben ser de tipo entero. Un ejemplo de este tipo de variables es la variable de control en un ciclo para. Una variable contadora se incrementa (o decrementa) en un valor constante en cada iteración del ciclo. Es así como en los algoritmos presentados anteriormente para resolver el styleproblema de calcular la suma de los números naturales desde 1 hasta,  la variable i es una variable contadora.
Ejemplo. Desarrollar un algoritmo que imprima los números impares en orden descendente que hay entre 1 y 100.
i: entero
i := 99
mientras (i >=1) hacer
escribir( i)
escribir( ‘,’ )
i := i – 2
fin_mientras

Variables Sumadoras


Son variables cuyo valor se incrementa o decremento en una cantidad variable. Necesitan operaciones de:
·         Inicialización: <nombre_acumulador> ← <valor_de_inicializacion>
·         Acumulación: <nombre_acumulador> ← <nombre_acumulador> + <nombre_variable>
Hay que tener en cuenta que la siguiente también sería una variable de acumulación: <nombre_acumulador> ← <nombre_acumulador> *<valor>

variables


Una variable es un dato cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecución del programa. Hay diferentes tipos de variables: enteras, reales, caracteres y cadenas. Una variable que es de cierto tipo solo puede tomar valores que correspondan a ese tipo. Si se intenta asignar un valor de tipo diferente se producirá un error.
Una variable se identifica por dos atributos: el nombre de la variable (identificador) y el tipo de la variable. El identificador se puede formar con caracteres alfanuméricos y el carácter de subrayado ( _ ) empezando siempre por una letra. No se admiten como identificadores palabras reservadas del lenguaje de programación que se esté utilizando. Los nombres de variables que se elijan para el algoritmo o programa deben ser significativos y tener relación con el objeto que representa. En lenguaje C la sintaxis para definir una variable es:
	tipo_de_dato identificador;

Contador
Los procesos repetitivos requieren contar los sucesos y acciones internas, una forma de hacerlo es mediante un contador. Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante en cada repetición. La forma en que se construye un contador es la siguiente:
int contador = 1; //variable con valor inicial de 1
contador = contador+1; contador += 1;
contador ++;

Acumulador
Un acumulador o totalizador es una variable cuya función es almacenar cantidades resultantes de operaciones sucesivas. Realiza la misma función que un contador con la diferencia de que el incremento o decremento es variable en lugar de constante.
int acumulador = 0;
acumulador = acumulador + valor;
cumulador += valor;
Banderas
Una bandera, también denominada interruptor o conmutador es una variable que puede tomar uno de dos valores (verdadero o falso) a lo largo de la ejecución del programa y permite comunicar información de una parte a otra del mismo.
int primo;
primo = 0;
rimo = 1;
p

ciclos repetitivos


El CICLO MIENTRAS ejecuta un bloque de acciones ‘mientras’ que una condición dada se cumpla, es decir, cuando la condición evalúa a verdadero. La condición es evaluada antes de ejecutar el bloque de acciones y si la condición no se cumple, el bloque no se ejecuta. De esta manera es que el número de repeticiones del bloque de acciones sea cero, pues, si la condición la primera vez evalúa a falso, el bloque no será ejecutado alguna vez. La forma general del ciclo mientras es la siguiente:




Código:

mientras (condición) hacer

      <bloque de instrucciones>

  fin_mientras



Donde, (condición) es la condición que determina si el bloque de accionases ejecutado o no. Si la condición evalúa a verdadero el bloque es ejecutado y si evalúa a falso no es ejecutado. Después de ejecutar el bloque de acciones se vuelve a evaluar la condición.








EJEMPLO 1.

Dado un número natural n se desea calcular la suma de los números naturales desde 1 hasta n.

PROCEDIMIENTOS:
Objetos Conocidos un número natural. 

Objetos Desconocidos Un número natural. 

Condiciones El número buscado es la suma de los naturales empezando en cero hasta el número dado. 

ESPECIFICACIÓN:

Entradas n Î Enteros, (n es el número dado). 

Salidas suma Î Enteros, (suma es la suma de los primeros n números naturales). 

Condiciones 


DISEÑO: 

Primera Iteración:

1. Leer el número 

2. Recorrer los números desde el cero hasta el número dado e irlos sumando.

3. escribir la suma 

CODIGO:

Spoiler:



PARA:


ciclo para, es una estructura de control en la que se puede indicar el número máximo de iteraciones. Está disponible en casi todos los lenguajes de programación imperativos.

Variable de control: prácticamente un mandato impuesto por el uso habitual es utilizar la letra i como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se define en el primer parámetro de la instrucción junto con la inicialización (opcional). 

Inicialización de la variable de control: en pseudolenguaje se pide explicitarlo (es la sección := ValorInicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se define en el primer parámetro del bucle junto con la variable de control. 
Condición de control: en pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección A ValorFinal). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica). 

Incremento: en pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia PASO = ValorPaso cualquier número entero (léase bien entero, o sea que técnicamente podemos decrementar). En C es el último parámetro. 
Cuerpo: es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control; esto no es requerido en C, pero no se considera una buena práctica. 

REPETIR:

Sintaxis: 

repetir 
hasta que 
fin repetir

El intérprete ejecutará y a continuación evaluará . De resultar falsa, el intérprete vuelve al principio de y repite el mismo proceso. se ejecutará al menos una vez.

Ejemplo:

Código:

declarar variable entera suma
 Suma=0
declarar variable entera Entrada
repetir
imprime "Introduce un número"
lee Entrada
Suma=Suma+Entrada
hasta que Suma>100
imprime "La suma de todas las entradas sobrepasa a 100"


Ejecución del Programa:

EFECUCION 1
REPETIR
PIDE NUMERO: 
99#INGRESAMOS UN NUMERO ENTERO
suma=0+99#GUARDA EN SUMA EL VALOR 99
HASTA QUE SUMA>100 #no se cumple entonces entra de nuevo al ciclo

EJECUCIÓN 2
Repetir
PIDE NUMERO
1
SUMA=99+1#ahora suma es 100
hasta que suma >100 #como 100 no es mayor a 100 sino es igual entonces inicia de nuevo el ciclo

EJECUCIÓN 3

REPETIR

PIDE NUMERO 
1
SUMA=100+1# SE INGRESA EL VALOR NUEVO + EL VALOR ANTERIOR
HASTA QUE SUMA > 100 # SI SE CUMPLE Y FIN DE CICLO

SE IMPRIME MENSAJE
La suma de todas las entradas sobrepasa a 100


CONTADORTES Y ACUMULADORES

CONTADOR: 
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante cada vez que se produce un determinado suceso o acción. Los contadores se utilizan con la finalidad de contar sucesos o acciones internas de un bucle; deben realizar una operación de inicialización y posteriormente las sucesivas de incremento o decremento del mismo. La inicialización consiste en asignarle al contador un valor. Se situará antes y fuera del bucle.
Representación:
=nombre del contador> + 
Si en vez de incremento es decremento se coloca un menos en lugar del más.
Ejemplo: i = i + 1

ejemplo saber la cantidad de hombres y mujeres, esa funcion seria asi:
Código:

si(sexo='m')
    contador_de_hombres=contador_de_hombres+1
sino
    contador_de_mujeres=contador_de_mujeres+1


ACUMULADOR O TOTALIZADOR :

Es una variable que suma sobre sí misma un conjunto de valores para de esta manera tener la suma de todos ellos en una sola variable. La diferencia entre un contador y un acumulador es que mientras el primero va aumentando de uno en uno, el acumulador va aumentando en una cantidad variable.
Representación: 

Ejemplo: 
Calcular la suma de los cuadrados de los primeros 100 enteros y escribir el resultado. Se desea resolver el problema usando estructura Desde, Mientras y luego Repetir.