jueves, 20 de marzo de 2014

Aplicar los principios de la programación en la solución de problemas



Centro de Bachillerato Tecnológico Agropecuario #32
“Agustín Yánez”


Portafolio de evidencias electrónico.


Modulo 3
“Desarrollo de sistemas básicos de información”

Submodulo 1
“Aplicar los principios de la programación para la resolución de problemas”










Ali Roldan Chavoya Jimenez                             Profesor: Ing. Miguel Gutiérrez Nungaray
4 “C”  Informática.
No. 4


Introducción

En el portafolio evidencias voy a poner tres temas que parecieron más interesantes o qué son mas relevantes para mi. Los temas seleccionados son en base a lo que yo creo fundamental para la programación, Y algún otro que yo escogí es porque me gustó, porque me llamó la atención. Entonces de forma general les voy hablar de tres temas que yo escogí.
El primero de ellos es la definición de algoritmo y en general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un cálculo o un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida). Sin embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular.  Menos algunos algoritmos siguen de forma infinita, por así decirlo, por qué no acaban, no tienen un fin definido o no resuelven su problema.
También hay otro tema que va enfocado al algoritmo y es una forma de resolverlo, que se llama diagrama de flujo. El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en varias disciplinas para resolver los problemas o un algoritmo. Un diagrama de flujo lleva diferentes elementos como son los símbolos y líneas de conexión. estos símbolos tienen diferentes significados, por así decirlo, que representan los pasos que va seguir la de turismo para resolverse y terminarlo. También tienen conectores que indican hacia dónde va el diagrama. Los dramas de flujo tienen diferentes reglas tales como; sus líneas tienen que ser horizontales y verticales, y no oblicuas, así como también tienen que ir de arriba abajo izquierda a derecha.  El diagrama de flujo tiene muchos usos en disciplinas diferentes.
Un tema que está interesante también y algo extenso, son las sentencias de control selectivas, que  agregué en este portafolio de evidencias.
 Las sentencias de cuantos directivas sirven, como dice su nombre, para seleccionar, para poner una condición y ver si esta es verdadera o falsa. Las estructuras de control de selección, ejecutan un bloque de instrucciones u otro, o saltan a un subprograma o subrutina según se cumpla o no una condición.
Éstas se dividen en tres que son la selectiva simple, selectiva doble, y selectiva múltiple.





Objetivo

El objetivo de este portafolio de evidencias es nada más y nada menos que sacar cinco puntos en una calificación de mi escuela.
Pero sin dejarnos atrás es también para conocer estos tres temas que escogí personalmente ay para que sepan sobre que son los diagramas de flujo, los algoritmos, y sentencias de control selectivas que es un tema muy interesante y que yo escogí por ese mismo motivo.
Otro objetivo es lograr subirlo a un blog para que una comunidad lo vea y pueda enterarse sobre este tema. Cualquier cosa que tomen de aquí puede servirles y les pudo haber sido de mucha ayuda.





Evidencias

Algoritmos
Como primera evidencia tenemos a los algoritmos, y resolveremos el algoritmo sobre cómo hacer un huevo.

Entradas
Procesos
Salidas
         ·       Sujeto
         ·       Huevo
         ·       Sal
         ·       Aceite
         ·       Sartén
Primero calentamos el aceite en una sartén
Tomamos el huevo y le damos una quebradita con objetivo de extraer lo de adentro y ponerlo en el sartén
Después le ponemos sal al huevo y lo freímos hasta que este listo.
NOTA: moverlo constantemente para que no se pegue.
Tenemos un huevo frito



Como podemos observar primero tenemos nuestras entradas que son los ingredientes para preparar nuestro huevo frito.
En la parte de los procesos tenemos las instrucciones a seguir para poder resolver nuestro algoritmo, las instrucciones.
Finalmente en la salida tenemos nuestro resultado que es un huevo frito.

Ahora resolveremos el algoritmo para preparar un chocoflan

Entradas
Procesos
Salidas
·       1 caja de harina para preparar pastel de chocolate
·       1 taza de harina para hotcakes
·       3 huevos
·       1 taza de leche condensada
·       1 taza de leche entera
·       Canela o vainilla (opcional)
·       Cajeta al gusto
               ·       Nueces al gusto
Prepare la mezcla para el pastel de chocolate según las instrucciones de la caja, adicionalmente agregue la harina para hotcakes.
Coloque en un molde previamente enharinado y engrasado.
Licúe los huevos, la leche y agregue la canela o vainilla.
Una vez licuado, vacié encima de la mezcla para el pastel, deje hornear por 35 minutos.
De molde el flan y adorne con la cajeta y las nueces.
Un rico chocoflan




Diagramas de flujo

Una forma de resolver los algoritmos es con los diagramas de flujo, estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.
Aremos el diagrama de flujo del huevo:






































En este ejemplo tenemos primero que nada nuestro inicio, el cual debe de tener todo diagrama de flujo.
Después tenemos nuestras entradas en donde vienen los ingredientes o las preparaciones para poder freír un huevo.
En el rectángulo tenemos un procesos, y es ahí el procedimiento para freír nuestro huevo.
Finalmente tenemos nuestro chocoflan terminado.















Ahora algo mas complejo:
Hacer el diagrama de flujo que represente al algoritmo para controlar la oferta de un supermercado, el cual premiara a sus mejores clientes cuando la suma de sus compras sea mayor a 400 pesos, le ara un descuento del cuatro por cierto, e imprimirá la cantidad que deberá pagar. De lo contrario solo aparecerá un mensaje en pantalla “Gracias por su Compra”
 El diagrama quedaría de la siguiente manera

























Primero entran los precios de los productos y en el rectángulo (proceso) hace una suma, una vez que tengamos el total de la suma de los productos, el programa decide la ruta a partir de la condición. Entonces si nuestra suma fue mayor tomaremos la derecha, y si no, imprimirá en pantalla “gracias por su compra”











Sentencias de control selectivas

ESTRUCTURA SELECTIVA SIMPLE
Permite ejecutar una acción o grupo de acciones solo si se cumple una determinada condición, es decir, donde la condición “C” es un grupo de condiciones a evaluarse. El bloque “A” representa la operación o conjunto de operaciones a realizar si la condición “C” es verdadera.

#include<iostream.h>
int main()
{
int numero;
cout<<”Ingrese un número ”;
cin>>numero;
if(numero%3==0)
{
    cout<<”El numero es multiplo de tres<<endl;
}            
cout<<”El numero ingresado es”<<numero<<endl;  
}
system(“pause”);
return 0;
}

ESTRUCTURA SELECTIVA DOBLE

Permite seleccionar una ruta de dos posibles, en base a la verdad (V) o falsedad (F) de la condición.

#include<stdio.h>
#include<conio.h>
int main()
{
  float total=0,ciclo=0,conta_h=0,conta_m=0,porc_h=0,porc_m=0;
  char mof;
  gotoxy(5,5);printf("Cuantos alumnos hay en este grupo?: ");scanf("%f",&total);
  for(ciclo=1;ciclo<=total;ciclo++)
  {
    clrscr();
    PREG: gotoxy(10,6);printf("Sexo de alumno %.f? (M o F): ",ciclo);scanf("%c",&mof);
    if(mof=='m' || mof=='M')
      conta_h++;
    else if(mof=='f' || mof=='F')
      conta_m++;
    else
      goto PREG;
   }
  //Calculos
  porc_h=conta_h/total*100;
  porc_m=conta_m/total*100;
  //
  gotoxy(5,5);printf("El porcentaje de hombres es %.1f (%.f de %.f)",porc_h,conta_h,total);
  gotoxy(5,6);printf("El porcentaje de mujeres es %.1f (%.f de %.f)",porc_m,conta_m,total);
  getch();
}

ESTRUCTURA SELECTIVA MULTIMPLE

#include <stdio.h>
#include <stdlib.h>

int main(void) {
            int dia;

            printf("que número de día de la semana es?");
            scanf("%d",&dia);

            switch(dia) {
                       case 1 :
                                   printf("Lun, Lunes");
                                   break;
                       case 2 :
                                   printf("Mar, Martes");
                                   break;
                       case 3 :
                                   printf("Mier, Miercoles");
                                   break;
                       case 4 :
                                   printf("Jue, Jueves");
                                   break;
                       case 5 :
                                   printf("Vie, Viernes");
                                   break;
                       case 6 :
                                   printf("Sab, Sabado");
                                   break;
                       case 7 :
                                   printf("Dom, Domingo");
                                   break;
                       default :
                                   printf("No existe");
}
return 0;
}


























Reflexiones

El primer tema es sobre los algoritmos, y un algoritmo es simplemente un una secuencia de instrucciones que te sirven para resolver algo, yo ahí puse el ejemplo del huevo el cual es muy fácil de resolver simplemente vas siguiendo instrucciones hasta resolver el problema.
Este tema de los algoritmos sinceramente estaba demasiado fácil y no se compara nada con lo que estuvimos viendo durante el submodulo 1. Los temas que estuvimos viendo conforme iva avanzando en el submódulo se iban complicando más. Un algoritmo yo pienso que es la base de la programación, porque es con el tema que empezamos y además es como un eslabón, porque lo que hacemos es resolver problemas para traducirlos a un código. Y pues si más que decir, yo pienso que sobre este tema, los algoritmos, serían todas mis reflexiones que me surgieron.

Otro tema que también aborde, fue sobre los diagramas de flujo. Los diagramas de flujo son una forma de resolver los algoritmos que se nos presenta. Es una forma más conceptual y más compleja de resolverlo que es un conjunto prescrito instrucciones o reglas están indefinidas, ordenadas y infinitas que permiten realizar un actividad mediante pasos sucesivos que no hacen dudas al usuario a que va hacer dicha actividad. En la vida cotidiana entre muchos algoritmos frecuentemente para resolver un problema. Algunos ejemplos son como unos manuales usuario, que muestran instrucciones o algoritmos para saber cómo manejar el aparato o para construir uno.
Otros pueden resolver un problema matemático o cosas de ese tipo, o simplemente cuando un jefe le da instrucciones a su trabajador. Entonces un diagrama de flujo es una forma de escribir los algoritmos gráficamente a través de símbolos y flechas. Los diagramas de flujo son usados para representar algoritmos pequeños puesto que abarcan mucho espacio y su construcción es muy laboriosa.
En si, un diagrama de flujo no se va representar gráficamente un algoritmo con sus respectivas notas para que los programadores lo entienda.

Un último tema de que habar, fueron las sentencias de control selectivas, que fue el tema al que yo le puse mas atención porque fue el que expuse, entonces yo me concentre más que en los otros temas porque estaba investigando y sacando muchos ejemplos y viendo vídeos y muchas cosas que me tenían muy al tanto de esto.
Y pues esta sentencia es para cuando nosotros tenemos varias opciones o decidir algo. Dentro de estas se encuentra el IF,  es una sentencia de control selectiva simple que es una que tiene muy poca estructura y  es muy fácil entender.
Esa la primera, la siguiente se llama if-else es una combinación de ir con otro componente else. Es más o menos lo mismo solo que éste tiene varias repeticiones y es más eficaz a la hora de ser un código grande o poner diferentes condiciones.
Y por último está el Control selectivas múltiples que utilizamos en para tener varias opciones e interactuar con el usuario para que él decida cuál opción quiere.
Estos temas que yo elegí fueron como los básicos, Y si no los básicos fueron los que más me interesa una mi, fueron los eslabones principales que me ayudaron a entrar al tema la programación y que además me ayudaron a comprender un poquito más sobre qué se trataba la programación, que resolvía la programación.
Cuando alguna de las sentencias que aparece dentro de los brazos o alternativas de una sentencia selectiva es otra sentencia selectiva, se dice que están anidadas. No hay límite al número de sentencias que se pueden anidar, siempre que estén totalmente incluidas unas en otras, como en el ejemplo del programa Euro. Si existen estructuras if anidadas, las palabras reservadas else se corresponden con el if inmediatamente anterior, el más cercano.

Pues otra reflexión en general y abarcando todo, es que la programación esta echa en base a los programadores y que gracias a ella se pueden hacer miles de software y componentes que hacen nuestra vida futurista mas y mas confortante y llena de mejoras.
Sin la programación no hay tecnología.
Es un poco complicada pero os sirve para innovar nuestro mundo


Conclusiones

Mis conclusiones de esto o que llevamos avanzado en el primer su módulo es de quien los demás están fáciles a comparación de lo que vamos a ver más adelante, porque aquí sólo estamos viendo o sentencias de control selectivas o algoritmos, cómo resolver un diagrama de flujo; entonces solo estamos viendo lo básico para entrarle a lo duro.
Sobre todo esto mi conclusiones que está algo difícil sino por los atención y si seguimos así.

Otra conclusión que quiero hacer es sobre estos temas que hemos visto se me hacen muy simple y no alcanzamos a abarcar todo acerca de la programación masa de entrada está mas difícil.

11 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Ah mira un post chevere deverias trabajar para disney

    ResponderEliminar
  3. Buen trabajo :) tiene buena información

    ResponderEliminar
  4. Muy buen post, Grandiosa informacion, muy util la verda, sigue asi campeon!!

    ResponderEliminar
  5. felicidades buen trabajo
    Soy Iliana Por Si Tenias El Pendiente:)

    ResponderEliminar
  6. Muchas felicidades! Un trabajo increíble! Buena estructura deberías hacer mas trabajos como este!.. :)

    ResponderEliminar
  7. Muy buen trabajo! Tiene información muy completa y útil. Debería de haber más trabajos así.

    ResponderEliminar