Descargar

Apredizaje de programación (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

Clase de problemas No computables: No existe un algoritmo. Computables Tratables: Existe un algoritmo eficiente. Intratable: No existe algoritmo eficiente. Un problema intratable puede convertirse en tratable si se encuentra un algoritmo que lo resuelva.

edu.red

Informática Disciplina del estudio sistematizado de los procesos algorítmicos que describen y transforman información, su teoría, análisis, diseño, eficiencia, implementación y aplicación. La informática es una disciplina científica, matemática y una ingeniería. Tiene tres formas de pensar propias: Teoría, abstracción y diseño. Las tres se complementan para la resolución de la mayoría de los problemas.

edu.red

Especificación Implementación Especificación: Es el proceso de analizar los problemas del mundo real y determinar en forma clara y concreta el objetivo que se desea alcanzar. El modelo debe ser interpretado sin errores por un autómata. Implementación: Traducir a un conjunto de instrucciones permitidas y definidas por sus reglas sintácticas y valor semántico lo que fue especificado.

edu.red

Variables Constantes Variables: Denotan una magnitud o indicador del proceso. Se caracteriza por un nombre, un tipo de dato y el valor que tiene en un momento determinado. Utilizadas para los datos de entrada, intermedios y de salida. Constante: Nombre asociado a un valor que permanece sin modificación durante todo el proceso

edu.red

Las metas que se persiguen son que el estudiante: Retenga el conocimiento, lo comprenda y haga uso activo del mismo. Adquiera un conocimiento organizado. Desarrolle habilidades intelectuales y haga uso activo de un pensamiento creativo. Fomentar pasiones intelectuales como la curiosidad. Que autogestionar su conocimiento, a sintetizar, a abstraer . Que haga uso de lenguajes del pensamiento, Que sepa como volcar ideas en el papel

edu.red

Tipos de Datos Identifica o determina un dominio de valores y el conjunto de operaciones aplicables sobre esos valores. Primitivos. Derivados. Abstractos. Concordancia entre valores y operaciones. Baca la vuela Errores sintacticos, errores gramaticales La vaca vuela Error de concordancia entre objeto vaca y operación volar

edu.red

Expresiones Sentencias Léxico Expresiones: secuencia de operadores y operandos que se reduce a un solo valor. Sentencias: acción produce un efecto, puede ser primitiva o no primitiva. Léxico: Descripción del conjunto de acciones e informaciones a partir de la cual se expresa el esquema de comportamiento del algoritmo.

edu.red

Pasos para resolver un algoritmo Comprender el problema. Identificar información y acciones a incluir en el lexico (constantes, tipos, variables y acciones). Encontrar un camino de secuenciar las acciones para obtener el resultado, es decir para alcanzar la postcondición a partir del estado inicial que cumple con la precondición.

edu.red

Acciones primitivas y derivadas Acciones primitivas: Incorporadas por el lenguaje. Acciones derivadas: realizadas mediante la combinacion de acciones primitivas con el objeto de desarrollar una tarea en particular. Son complementarias y pueden ser desarrolladas por el programador.

edu.red

Acciones primitivas Asignacion: De entrada: permite cambiar el valor de una variable. Ya sea en forma interna o a través de algun dispositivo de entrada. De salida: Permite mostrar el valor de una variable a través de algun dispositivo de salida.

edu.red

Acciones primitivas Analisis de casos: Permiten especificar la partición del dominio de datos. Instrucción según: Especifica la partición en varios subdominios y asocia acciones a cada uno de ellos. Instrucción si entonces si_no: cuando en un análisis de casos solo se tienen dos.

edu.red

Acciones primitivas Repeticiones: permiten ejecutar una determinada cantidad de veces una accion o conjunto de acciones. Exactas: se conoce con precisión la cantidad de veces que las acciones se repetiran. No exactas: la finalización del ciclo depende de alguna condición, pueden ser pre o pos condicionales.

edu.red

Ejemplo PROBLEMA: Dada una temperatura en grados Fahrenheit, escribir un algoritmo que obtenga la temperatura en grados Celsius. LEXICO {Nombres significativos para identificadores significativos} tempFahrenheit : Real // Contiene el valor que representa la temperatura en ºF tempCelsius : Real // Contiene el valor que representa la temperatura en ºC CERO_ABSOLUTO = -459.58 // Representa el valor del cero absoluto en ºF ConvertirFahrenheitCelsius : Accion PRE {TempFahrenheit >= CERO_ABSOLUTO} POS {Convierte a Celsius una temp. En Fahrenheid} tempCelsius = (5.0 / 9.0) * (tempFahrenheit – 32.0) FIN ConvertirFahrenheitCelsius ALGORITMO Leer (tempFahrenheit) ConvertirFahrenheitCelsius Escribir(´La temp. En Celsius es : ´, tempCelcius) FIN

edu.red

Ejemplo PROBLEMAS no algoritmicos. AA + BB = CBC DONALD + GERALD = ROBERT El papa de Rebeca tiene 5 hijos chacha, cheche, chichi, chuchu, como se llama el otro hijo Un granjero tenia 20 ovejas, todas menos nueve escaparon. Cuantas le quedaron? Una botella de vino cuesta 10 $, el vino vale 9 $ mas que la botella. Cuanto vale cada cosa? Matriz cuadrada impar N*N colocar N2 dígitos sin repetir 8 1 6 3 5 7 4 9 2 2 + 7 – 118 = 129

edu.red

Problemas Paramo de posibilidades Meseta aparente sin indicios Angosto cañon de exploracion Oasis de falsas promesas Salto del pensamiento Larga busqueda Escaso avance aparente Acontecimiento desencadenante Chasquido cognitivo Transfomacion

edu.red

Program Calculo; var notaTeoria, notaPractica, notaFinal : real; begin writeln; writeln('***** Calculo de la nota final*****'); write('Nota de teoria: '); readln(notaTeoria); write('Nota de practicas: '); notaFinal := (notaTeoria + notaPractica) / 2; write('La nota final es: ‘, notaFinal:5:2); readln end. Ejemplo en Pascal

edu.red

#include < stdio.h> #include < conio.h> int main () { float notaTeoria, notaPractica; float notaFinal; printf(" Calculo de la nota final de una asignaturan"); printf("Nota de teoria: "); scanf(" %f",¬aTeoria); printf("Nota de practicas: "); scanf(" %f",¬aPractica); notaFinal = (notaTeoria + notaPractica)// 2. 0; printf("La nota final es: %.2fn", notaFinal); printf("nPulse enter para continuar"); getchar(); return 0; } Ejemplo en C

edu.red

Composicion secuencial Tecnica de descomposicion algoritmica que disminuye la complejidad de un problema mediante la division en probemas mas pequeños, cuya solucion se puede abordar en forma independiente y la secuenciacion parcial permite alcanzar la solucion final.

edu.red

Ejemplo PROBLEMA: Dada una temperatura en grados Fahrenheit, escribir un algoritmo que obtenga la temperatura en grados Celsius. LEXICO {Nombres significativos para identificadores significativos} tempFahrenheit : Real // Contiene el valor que representa la temperatura en ºF tempCelsius : Real // Contiene el valor que representa la temperatura en ºC CERO_ABSOLUTO = -459.58 // Representa el valor del cero absoluto en ºF ConvertirFahrenheitCelsius : Accion PRE {TempFahrenheit >= CERO_ABSOLUTO} POS {Convierte a Celsius una temp. En Fahrenheid} tempCelsius = (5.0 / 9.0) * (tempFahrenheit – 32.0) FIN ConvertirFahrenheitCelsius ALGORITMO Leer (tempFahrenheit); ConvertirFahrenheitCelsius; Escribir(“La temp. En Celsius es : ´”, tempCelcius); FIN

edu.red

Analisis de casos Consiste en descomponer el dominio de los datos en varios subdominios o casos y asociar a cada uno de ellos con una o mas acciones. Cada caso es especificado mediante expresiones logicas mutuamente excluyentes y la union de los casos debe cubrir el dominio inicial de los datos.

edu.red

Analisis de casos Los estados iniciales de cada caso deben cubrir el dominio de los datos de entrada. Debe existir un caso para cualquier posible entrada. Las condiciones de cada caso deben ser mutumente excluyentes.

edu.red

Analisis de casos

0 < = N < 5 5< =N < 7 7< =N< =10 0 < = N< =5 5< =N< =7 7< =N< =10 0 < = N < 5 5 < N < 7 7 < N< =10 Ejemplo de posibles descomposiciones de valores entre 1 y 10

edu.red

Instrucción segun SEGÚN c1 … cn e1 : a1 e2 : a2 . . . en : an FIN_SEGUN SEGÚN c1 … cn e1 : a1 e2 : a2 . . . en : an EN_OTRO_CASO : an+1 FIN_SEGUN Especifica la particion del dominio de datos en varios subdominios y asocia acciones a cada uno de ellos.

edu.red

PROBLEMA: Desarrollar un programa que simule una calculadoa simple. Que ingrese dos oprandos y un operador. Según el operador que muestre la suma, resta, multiplicacion o division. LEXICO Operando1, Operando2 : Entero; Operador : Carácter; ALGORITMO Leer (Operando1, Operando2, Operador); SEGÚN Operador Operador = ´+´ : Escribir (Operando1 + Operando2) Operador = ´-´ : Escribir (Operando1 – Operando2) Operador = ´*´ : Escribir (Operando1 * Operando2) Operador = ´/´ : Escribir (Operando1 Div Operando2) FIN_SEGUN FIN

edu.red

PROBLEMA: Desarrollar un programa que simule una calculadoa simple. Que ingrese dos oprandos y un operador. Según el operador que muestre la suma, resta, multiplicacion o division. LEXICO Operando1, Operando2 : Entero; Operador : Carácter; ALGORITMO Leer (Operando1, Oprando, Operador); SEGÚN Operador Operador = ´+´ : Escribir (Operando1 + Operando2) Operador = ´-´ : Escribir (Operando1 – Operando2) Operador = ´*´ : Escribir (Operando1 * Operando2) Operador = ´/´ : Escribir (Operando1 Div Operando2) EN_OTRO_CASO : Escribir(“Operador no valido”) FIN_SEGUN FIN

edu.red Instrucción SI ENTONCES SI_NO Cuando el analisis de casos solo tiene 2 casos, la instrucción según se puede simplificar con la instrucción SI exp ENTONCES a1 SI_NO a2 FIN_SI Si exp ENTONCES a1 FIN_SI

edu.red

PROBLEMA: Obtener el mayor de dos numeros LEXICO x, z, mayor : Entero; ALGORITMO PRE { ( x = X) y ( z = Z)} POST { (( x>=z) ?(Mayor = X)) y ((z>x)?(Mayor=Z)) } Leer (x, z); SI x >= z ENTONCES Mayor ? x SI_NO Mayor ?z; FIN_SI Escribir(`El mayor es : ´,mayor); FIN

edu.red

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente