jueves, 12 de octubre de 2017

ESTRUCTURAS DE CONTROL BASICAS

Introducción

Las estructuras de control, son instrucciones que permiten romper la secuencialidad de la ejecución de un programa; esto significa que una estructura de control permite que se realicen unas instrucciones y omitir otras, de acuerdo a la evaluación de una condición.
 Comparación Estructuras de Control
Como se observa en el lado derecho de la figura, los programas son secuenciales, se ejecutan todas las instrucciones una a continuación de otra; mientras que al utilizar estructuras de control, - lado izquierdo de la figura -, ya no necesariamente se ejecutan todas las instrucciones, sino únicamente las instrucciones de la ruta seleccionada de acuerdo a una condición evaluada.
Existen 2 tipos de esctructuras de control:
  1. Selectivas
  2. Repetitivas
Las primeras permiten seleccionar un camino a ejecutarse entre dos o más opciones "por una sola vez"; y las segundas, permiten ejecutar un conjunto de instrucciones "varias veces" mientras se cumpla una condición. 
Al escribir una estructura de control, se deberá tener presente que una correcta tabulación, permitirá que el programa sea más legible y fácil de comprender. Los lenguajes de programación, realizan esta tabulación de forma automática, siempre y cuando se escriban correctamente el inicio y final de cada estructura.

Sentencias Selectivas

Las estructuras de control Selectivas, permiten "seleccionar" una ruta alterna a la solución del problema, según el resultado de evaluar una expresión relacional y/o lógica.
Si se considera un ejemplo de la vida diaria, podría ser semejante a las decisiones que se toman para realizar acciones específicas:
Si llueve (expresión lógica), llevar paraguas;
Si tengo suficiente dinero (condición relacional), comprar recuerdos; sino No comprar.
Estas decisiones que se toman diariamente, están reflejadas en programación como estructuras selectivas.
Existen específicamente dos instrucciones selectivas: If y Switch
Para la representación gráfica de las estructuras selectivas se utiliza la figura geométrica "rombo" para ingresar la condición que determinará el camino a seguir.
 
Para el diseño en Pseudocódigo se utiliza la palabra "Si" y "finSi". La sintaxis está detallada en la explicación de cada instrucción. 
Para identificar qué instrucciones van en cada sección de la instrucción selectiva debe preguntarse lo siguiente:
Si la condición es verdadera ¿qué debe hacer el programa?
Todas las respuestas a esta pregunta deben escribirse como instrucciones en la sección verdadera de la sentencia selectiva.
Ejemplo: Realice un programa que verifique si un número es positivo, en caso afirmativo imprima el mensaje indicando qué es positivo, y réstele 1, y obtenga el residuo del número dividido para 2.
Respuesta
En este caso, la condición es: num>0; por lo tanto si es la evaluación es verdadera, entonces: ¿qué debe hacer el programa?: 
Imprimir "positivo"
num = num - 1
residuo = num % 2 
Las tres instrucciones deben ir en la sección afirmativa de la sentencia.
De igual manera, para identificar las instrucciones de la sección falsa, debe preguntarse:
Si la condición es falsa ¿qué debe hacer el programa?
Todas las respuestas a esta pregunta deben escribirse como instrucciones en la sección falsa de la sentencia selectiva; sin embargo es posible que no deba realizarse ninguna acción, en cuyo caso la instrucción únicamente tiene parte verdadera.

RECUERDE: Una instrucción selectiva, puede no tener parte falsa, pero siempre debe tener una parte verdadera;
Ejemplo: Realice un programa que verifique si un número es positivo, en caso afirmativo imprima el mensaje indicando qué es positivo, y réstele 1, y obtenga el residuo del número dividido para 2.  Si se trata de un número negativo: Imprima el mensaje Negativo y súmele 1 al número.
Respuesta
En este caso, la condición es: num>0; por lo tanto si es la evaluación es verdadera, entonces: ¿qué debe hacer el programa?: 
Imprimir "positivo"
num = num - 1
residuo = num % 2 
Las tres instrucciones deben ir en la sección afirmativa de la sentencia.
Si es falso ¿qué debe hacer el programa?: 
Imprimir "Negativo"
num = num + 1

If

La Instrucción If, "Si" en pseudocódigo, permite alterar la secuencia seleccionando entre dos opciones posibles. Esta instrucción puede escribirse de las siguientes formas:
SI SIMPLE
En esta forma, los pasos o instrucciones que se encuentran dentro se ejecutan únicamente cuando la evaluación de la condición sea verdadera.
Sintaxis:
Pseudocódigo DFD C
si (condición)
paso1
paso2
...
pasoN
finSi
if (condición) {
instrucción1;
instrucción2;
...
instrucciónN;
}

SI COMPLETO (VERDADERO - FALSO)
En esta forma, los pasos o instrucciones que se encuentran entre el inicio y fin de la estructura, tienen dos secciones:
  1. Un conjunto de instrucciones que se ejecutan cuando la evaluación de la condición sea verdadera
  2. Un conjunto e instrucciones que se ejecutan cuando la evaluación de la condición sea falsa.
Sintaxis:
En Pseudocódigo DFD C
si (condición)
paso1
paso2
...
pasoN
finSi
caso contrario
paso1
paso2
...
pasoN
finCasoContrario
if (condición) {
instrucción1;
instrucción2;
...
instrucciónN;
}

SI ANIDADO
 Es una modificación del uso de la instrucción "Si", que aprovechando la característica de anidamiento de las estructuras de control, según la cual es posible que una estructura se contenga a sí misma como parte de su cuerpo de instrucciones, permitiendo así elegir entre más de dos opciones.
Sintaxis:
Pseudocódigo DFD C
Si (condición)
pasos
caso contrario
si (condición)
pasos
caso contrario
si (condición)
pasos
finSi
finSi
finSi
  if (condición){
pasos
}
else{
if(condición){
pasos
}
else{
if(condición){
pasos
}
}
}
Como puede observarse en la tabla anterior, esta característica de la instrucción if, permite decidir entre más de dos posibilidades de respuesta, siendo posible extenderse tantas como sea necesario.  Es necesario aclarar que tanto la parte verdadera como la parte falsa pueden anidar dentro de sí mismas otra instrucción de tipo if con o sin su correspondiente caso contrario.

Switch

La Instrucción Switch, es una alternativa a la instrucción if, y se caracteriza por ofrecer la posibilidad de elegir entre más de dos opciones. En pseudocódigo, se le conoce de diferentes formas:
  1. En caso de
  2. Según sea
Pero al igual que en la instrucción if, el camino a seguir depender del valor que se evalúe. En esta instrucción no existe una condición explícita en su sintaxis, sin embargo de acuerdo al lenguaje es posible evaluar un caracter o un número, siendo esta una limitación que impide la escritura directa de condiciones; por lo que es útil en algunos problemas en los que se requiere elegir opciones directas. Su sintaxis es la siguiente:
En Pseudocódigo:
Según variable_numerica Hacer
opcion_1:
Escribir "acciones1"
opcion_2:
Escribir "acciones2"
opcion_3:
Escribir "acciones3"
De Otro Modo:
Escribir "accionesSiNoCumpleNinguna"
Fin_SegunSea

En DFD se vería así:

Para implementar en Java, las instrucciones son las siguientes:
switch (op){
case 1:
instrucciones
break;
case 2:
instrucciones
break;
default:
instrucciones
break;
}

miércoles, 11 de octubre de 2017

ESTRUCTURAS REPETITIVAS


BUCLE FOR(PARA HACER).
El bucle for o ciclo for es una estructura de control en programación en la que se puede indicar de antemano el número mínimo de iteraciones que la instrucción realizará.1​ Está disponible en casi todos los lenguajes de programación imperativos.
BUCLE WHILE(MIENTRAS HACER).
Al ejecutarse la condición retornaVERDADERO porque el contenido de x (1) es menor o igual a 100. Al ser la condición verdadera se ejecuta el bloque de instrucciones que contiene la estructura while. El bloque de instrucciones contiene una salida y una operación.
BUCLE DO WHILE(HACER MIENTRAS).
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.
BUCLE REPEAT UNTIL(REPETIR HASTA).
En esta estructura las instrucciones interiores del bucle se repetirán HASTA que la condición se cumpla. Permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del bucl.

martes, 10 de octubre de 2017

HERRAMIENTA PARA DIAGRAMAS DE FLUJO

Edita e interpreta diagramas de flujo:
Descarga DFD en el siguiente enlace:https://freedfd.uptodown.com/windows/descargar

Nota 1.- La tarea es enviar un ejemplo de diagrama de flujo realizado en DFD, enviar hasta el  jueves 19 de octubre a horas 23:59, enviar a mi correo electronico: hey100@hotmail.com, con su nombre completo y apellidos y ademas el turno si es MAÑANA o NOCHE.

Nota 2.- Los estudiantes que no dieron el examen Primer Parcial pueden dar el viernes 20 de octubre en su respectivo horario.

lunes, 9 de octubre de 2017

PRÁCTICA DE SERIES Y DESCOMPOSICIONES

SERIES
  1. Realizar el diagrama de flujo para obtener la secuencia 1,1,1 ,2,2,2,3,3,3,4,4,4 … infinito
  2. Realizar el diagrama de flujo para obtener la secuencia 1,3,5,7,9,11,13 … infinito
  3. Realizar el diagrama de flujo para obtener la secuencia 1,2,2,3,3,3,4,4,4,4 … infinito
  4. Realizar el diagrama de flujo para obtener la secuencia 0, 1, 10, 2, 9, 3, 8 ... 0,10.
  5. Realizar el diagrama de flujo que para que imprime la secuencia 1, 2, 3, 1, 1, 2, 3, 2, 1, 2, 3, 3, 1, 2, 3, 4 ... infinito.
  6. Realizar el diagrama de flujo para obtener realiza la secuencia de Fibonacci.
  7. Realizar el diagrama de flujo para obtener  la secuencia 0, 1, 4, 3, 16, 5, 36 ... infinito.
  8. Realizar el diagrama de flujo para obtener la secuencia 0, -2, 3, -4, 5, -6 ... infinito.
  9. Realizar el diagrama de flujo para obtener la secuencia 0, 1, 10, 2, 9, 3, 8 ... 0,10.
DESCOMPOSICIONES
  1. Mostrar cada uno de los dígitos de un numero por separado
  2. Mostrar solo los dígitos pares de un numero 
  3. Contar la cantidad de dígitos: pares, impares  y nulos de un numero
  4. Emitir el promedio de los dígitos de n
  5. Mostrar el digito mínimo de un numero
  6. Mostrar el digito máximo de un numero
  7. Invertir el orden de los dígitos de un numero n

****************Entrega de la práctica 28 octubre 2017*****************

sábado, 7 de octubre de 2017

ARREGLOS O VECTORES

Un array o arreglo en C/C++ es un conjunto de datos que se almacenan en memoria de manera seguida con el mismo nombre. Es una colección de variables del mismo tipo, cada una de ellas se llama elemento y posee una posision dentro del arreglo llamado índice.
 Para acceder al elemento de un arreglo es necesario tener presente el indice, este se escribe entre parentesis cuadrados ([ ]), por ejemplo para el arreglo A y la posisión 5 se escribe A[5].

Ejemplo 1
Diagrama de flujo



viernes, 6 de octubre de 2017

PRACTICA DE VECTORES


  1. Escribir un programa que lea un vector de 10 elementos. Deberá imprimir el mismo vector por pantalla pero invertido. Ejemplo: dado el vector 1 2 3 4 5 6 7 8 9 10 el programa debería imprimir 10 9 8 7 6 5 4 3 2 1.
  2. Escribir un programa que lea 10 números por teclado. Luego lea dos más e indique si éstos están entre los anteriores.
  3. Define un array de 12 números enteros con nombre “num” y asigna los valores según la siguiente tabla: 
    Muestra el contenido de todos los elementos del array. ¿Qué sucede con los valores de los elementos que no han sido inicializados? 
  4. Define un array de 10 caracteres con nombre “simbolo” y asigna valores a los elementos según la siguiente tabla: 
    Muestra el contenido de todos los elementos del array. ¿Qué sucede con los valores de los elementos que no han sido inicializados? 
  5. Define tres arrays de 20 números enteros cada una, con nombres “numero”, “cuadrado” y “cubo”. Carga el array “numero” con valores aleatorios entre 0 y 100. En el array “cuadrado” se deben almacenar los cuadrados de los valores que hay en el array “numero”. En el array “cubo” se deben almacenar los cubos de los valores que hay en “numero”. A continuación, muestra el contenido de los tres arrays dispuesto en tres columnas. 
  6. Escribe un programa que lea 10 números por teclado y que luego los muestre en orden inverso, es decir, el primero que se introduce es el último en mostrarse y viceversa. 
  7. Escribe un programa que lea 15 números por teclado y que los almacene en un array. Rota los elementos de ese array, es decir, el elemento de la posición 0 debe pasar a la posición 1, el de la 1 a la 2, etc. El número que se encuentra en la última posición debe pasar a la posición 0. Finalmente, muestra el contenido del array. 
  8. Escribe un programa que pida 10 números por teclado y que luego muestre los números introducidos indicando “máximo” y “mínimo” al lado del máximo y del mínimo respectivamente. Estos dos números deben aparecer en colores diferentes al resto. 
  9. Escribe un programa que genere 100 números aleatorios del 0 al 20 y que los muestre por pantalla separados por espacios. El programa pedirá entonces por teclado dos valores y a continuación cambiará todas las ocurrencias del primer valor por el segundo en la lista generada anteriormente. Los números que se han cambiado se deben mostrar de un color diferente. 
  10. Realiza un programa que pida la temperatura media que ha hecho en cada mes de un determinado año y que muestre a continuación un diagrama de barras horizontales con esos datos. Las barras del diagrama se pueden dibujar a base de asteriscos o cualquier otro carácter. 
*** ENTREGA DE LA PRACTICA DESCOMPOSICION Y VECTORES EL VIERNES 10 DE NOVIEMBRE 2017, PASADA ESTA FECHA NO SE ACEPTARAN***
***** EL 10 DE NOVIEMBRE TRAER TODOS UN CELULAR ANDROID, YA QUE PROBAREMOS UNA APLICACION ****
*****EXAMEN SEGUNDO PARCIAL  17 DE NOVIEMBRE 2017 *****

jueves, 5 de octubre de 2017

CADENA CARACTERES EN UN VECTOR

Ahora en este concepto veremos como se puede almacenar un conjunto de caracteres relacionados, como por ejemplo cuando necesitamos almacenar en una variable un apellido y un nombre. Hasta ahora podemos resolver problemas que requieran la carga de valores de tipo int (enteros), float (reales) y char (un caracter ASCII individual) Si queremos almacenar una cadena de caracteres en el lenguaje C debemos definir un vector con componentes de tipo char. Para definir un vector de caracteres en C debemos indicar entre corchetes la cantidad de caracteres a reservar y tener en cuenta que uno de esas posiciones se utilizará como caracter de control, es decir que si tenemos que almacenar 10 caracteres al vector lo definiremos de 10 caracteres.
 Ejemplo:

#include<stdio.h>
int main()
{
   char cadena[5]="aaaaa";
   int i;
   for(i=1;1<=5;i++)
  {
      cadena[i]='a'
      getch();
      return 0;
  }

}

martes, 3 de octubre de 2017

ARRAY BIDIMENCIONALES(MATRIZ)

Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar una matriz es C++ es similar a un vector:
int matrix[rows][cols];
int es el tipo de dato, matrix es el nombre del todo el conjunto de datos y debo de especificar el numero de filas y columnas.
Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices en C++ se almacenan al igual que los vectores en posiciones consecutivas de memoria.
Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrás del otro juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subíndices que van en los corchetes y son las filas y las columnas.
Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera fila el valor 10.
No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz podemos usar igualmente un bucle. En este caso usando 2 for:
Ejemplo:   
for(int i = 1; i < =3; i++) {
  for(int j = 1; j < =3; j++) {
    matriz[i][j] = 2;
  }
}

lunes, 2 de octubre de 2017

PRACTICA DE MATRICES

1. Diseñe un programa que lea e imprima una matriz 5 x5.
2. Teniendo una matriz 3x3 buscar el numero mayor y mostrar el resultado.
3. Teniendo una matriz 3x3 buscar el numero menor y mostrar el resultado.
4. Teniendo una matriz 4x3 sumar los pares en una variable y los impares en otra variable y mostrar en pantalla.
5. Teniendo una matriz 2x3 mostrar el promedio de la matriz.
6. Teniendo una matriz 5x5 guardar en la diagonal principal 1.
7. Teniendo una matriz 3x3 ordenar los numeros de menor a mayor.

ENTREGA EL DIA DEL EXAMEN

domingo, 1 de octubre de 2017

EJERCICIOS PARA REALIZAR EN EL CELULAR

1. Realizar un programa donde se ingrese 3 numeros, despues encuentre el mayor y lo muestre.
2. Realizar la suma de 3 numeros que ingresan por teclado y mostrar dicha suma.
3. Escriba un programa que reciba como entrada el radio de un círculo y entregue como salida su perímetro y su área:
Ingrese el radio: 5
Perimetro: 31.4
Área: 78.5

4. Escriba un programa que calcule el promedio de 4 notas ingresadas por el usuario:
Primera nota: 55
Segunda nota: 71
Tercera nota: 46
Cuarta nota: 87
El promedio es: 64.75

ESTOS EJERCICIOS PRESENTAR HASTA EL DOMINGO 19 DE NOVIEMBRE 19:00 HORAS
NOTA NO UTILIZAR LA LIBRERIA IOSTREAM.H , NO UTILIZAR COUT. EN CLASE SOLO UTILIZAMOS LA LIBRERIA STDIO.H.
ENVIAR LOS 4 ARCHIVOS, EN CASO DE TENER PROBLEMAS EN EL CELULAR ENVIAR FOTOGRAFIAS DE EL CODIGO Y COMO SALE EN PANTALLA
ENVIAR A MI CORREO hey100@hotmail.com
NO SE OLVIDEN DE ENVIAR TODAS LAS PRACTICAS ESCANEADAS  A LOS QUE LES FALTO ENTREGARME. EN LA CLASE ME ENTREGARAN ESAS PRACTICAS.
****************************************************************************
Los siguientes estudiantes comunicarse con mi persona ya que no dieron el EXAMEN SEGUNDO PARCIAL y tienen que dar examen como EXTEMPORANEO ir a consultar a control y seguimiento:

Turno Mañana:
  • Dhilan Moraz Mollericona
  • Nestor Pedro Quispe
  • Alejandro Kevin Alanoca copana

Turno Noche:
  • Edgar Ivan Callizaya Mamani
  • Yhulisa Calle Choque
  • Diego Mayta Condori
  • Vladimir Monroy Nina
  • Christian Poma Atahuichi
  • Edgar Tinta Gomez
  • Jaime Teofilo Villegas Atahuichi
Comunicarse con mi persona lo mas pronto posible. Mi correo es hey100@hotmail.com