Este readme se baso en un word que rondaba por los grupos que me ayudo a aprobar el final de CADP. El chico no tiene github, asique no lo puedo recomendar :(. Con este repo y lo de tiempo en la primera pagina, estas sobrado para aprobar el final.
Es la ciencia que estudia el análisis y resolución de problemas utilizando computadoras.
Ciencia:
Se relaciona con una metodología fundamentada y racional para el estudio y resolución de los problemas(se vincula con la matemática y la ingeniería)Resolución:
se puede aplicar para diferentes áreasComputadora:
Máquina digital y sincrónica, con cierta capacidad de cálculo numérico y lógico controlado por un programa almacenado y con probabilidad de comunicación con el mundo exterior. Ayuda al hombre a realizar tareas repetitivas en menor tiempo y con mayor exactitud. No razona ni crea soluciones, sino que ejecuta una serie de órdenes que le proporciona el ser humanoObjetivo:
Es resolver problemas del mundo real utilizando una computadora (utilizando un software)
Tenemos distintos tipos de paradigmas, como Imperativo, Orientado a Objetos, Lógico, Funcional. Aca veremos el Imperativo.
Los pasos son detallados, pero lo principal que necesitamos seria 1)
Poseer un problema. Luego le siguen los siguientes en Orden
Qué acciones permitir, como realizarlas y qué efecto genera
- Pensar que acciones se van a permitir y que implica cada acción permitida
- Define los mecanismos de interacción necesarios
- Establece el efecto sobre la máquina y el usuario
- Indica los informes necesarios
Abstracción:
Interpretar los problemas de mundo real(analizando sus aspectos esenciales), para poder expresarlo en términos precisosModelización:
A partir de la expresión de la abstracción, se busca simplificarlo buscando sus:1)
Aspectos Principales2)
Datos a Procesar3)
Contexto del Problema (este puede imponer restricciones)
Especificación:
Determinar el objetivo del problema. Consiste en establecer unívocamente el contexto, las precondiciones y las poscondiciones
Descomponer el problema en partes más pequeñas para obtener una solución
- Reduce la complejidad
- Poder reutilizar módulos
- Distribuir el trabajo
Se va diseñar su implementación: esto requiere escribir el programa y elegir los datos a representar.
Programa:
Es un conjunto de instrucciones(que pueden ejecutarse sobre una computadora), que cumplen con una función específicaAlgoritmo:
Especificación rigurosa de la secuencia de pasos (instrucciones) a realizar sobre un autómata para alcanzar un resultado deseado en un tiempo finito.- Suponemos que empieza y termina (tiempo finito)
- Se debe expresar en forma clara y unívoca (especificación rigurosa)
- Si el autómata es una computadora, las instrucciones tiene que ser
entendibles
y ejecutables por la máquina.
Las instrucciones (que también se han denominado acciones) representan las operaciones que ejecutará la computadora al interpretar el programa.
Datos:
Es una representación de un objeto del mundo real mediante la cual podemos modelizar aspectos del problema que se quiere resolver con un programa sobre una computadora. Puede ser constante o variable.
Para el desarrollador | Para la Computadora |
|
|
- La computadora es una máquina capaz de aceptar datos de entrada, efectuar con ellos cálculos aritméticos y lógicos y dar información de salida (resultados), bajo control de un programa previamente almacenado en su memoria.
Lenguaje de Programación:
Es un conjunto de instrucciones permitidas (las cuales están definidas por reglas semánticas y sintácticas), que se utilizan para expresar soluciones de problemas.
Un tipo de dato es una clase de objetos de datos ligados a un conjunto de operaciones para crearlos y manipularlos.
-
Tienen un rango de valores posibles
-
Tienen un conjunto de operaciones permitidas
-
Tienen una representación interna (tipo de dato):
Simple Compuesto - Definido por el Lenguaje:
- Numérico
- Caracter
- Booleano
- Definido por el programador:
- Subrango
- Puntero
- Definido por el lenguaje:
- String
- Definido por el programador:
- Registro
- Arreglos
- Listas
- Definido por el Lenguaje:
-
Definido por el programador:
Permiten definir nuevos tipos de datos a partir de los tipos simples. -
Definido por el lenguaje:
Son provistos por el lenguaje y tanto la representación como sus operaciones y valores son reservadas al mismo -
SIMPLE: Aquellos que toman un único valor, en un momento determinado, de todos los permitidos para ese tipo
-
COMPUESTO: Pueden tomar varios valores a la vez que guardan alguna relación lógica entre ellos, bajo un único nombre
Representa el conjunto de números que se pueden necesitar. Estos números pueden ser enteros o reales.
Entero
- Tipo de dato simple y ordinal
- Al tener una representación interna tienen un número máximo y otro mínimo
- Operaciones
- +, -, * , /, <, >, =, <=, =>, MOD(resto entero), DIV(cociente entero)
Real
- Tipo de dato simple (representa números con coma)
- Al tener una representación interna, tienen un número mínimo y uno máximo
- Operaciones
- +, -, *, /, <, >, =, <=, =>
El orden de precedencia para la resolución es:
1)
operadores *, /2)
operadores +, -3)
operadores div y mod
En caso que el orden de precedencia natural deba ser alterado, es posible la utilización de paréntesis dentro de la expresión.
Representa datos que pueden tomar dos valores Verdadero (true) o falso (false)
- Es un tipo de dato simple y ordinal
- Operaciones
- OR, AND, NOT
- Orden de Precedencia
1)
NOT2)
AND3)
OR
Representa un conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato de tipo carácter contiene sólo un carácter
- Tipo de dato simple y ordinal
- ‘a’, ‘b’, ‘@’
- Operaciones
- =, <, >, <=, =>, <>
Es una zona de memoria que tiene un contenido.La dirección inicial de esta zona se asocia con el nombre de la variable.
Puede cambiar su valor durante el programa.
Es una zona de memoria que tiene un contenido.La dirección inicial de esta zona se asocia con el nombre de la variable.
NO puede cambiar su valor durante el programa.
const Identificador = valor;
- Los diferentes tipos de datos deben especificarse y a esta especificación dentro de un programa se la conoce como
declaración
. - Algunos lenguajes exigen que se especifique a qué tipo pertenece cada una de las variables. Verifican que el tipo de los datos asignados a esa variable se correspondan con su definición. Esta clase de lenguajes se denomina
fuertemente tipados
(strongly typed). - Otra clase de lenguajes, que verifica el tipo de las variables según su nombre, se denomina
auto tipados
(self typed). - Existe una tercera clase de lenguajes que permiten que una variable tome valores de distinto tipo durante la ejecución de un programa. Esta se denomina
dinámicamente tipados
(dinamically typed). Pre Condicion
- Lo que nosotros queremos que el programa haga
- Es la información que se conoce como verdadera antes de iniciar el programa (ó módulo).
Post Condicion
- Como quedarian cada una de las variables después de ejecutarse el programa
- Es la información que debería ser verdadera al concluir el programa (o módulo), si se cumplen adecuadamente los pasos especificados
Read (Lectura)
Se usa para tomar datos desde un dispositivo de entrada (por defecto desde teclado) y asignarlos a las variables correspondientes.Write (Escritura)
Se usa para mostrar el contenido de una variable, por defecto en pantalla.