Unidad 1
Proceso computacional y programas.
1.1-El proceso computacional
El computador es una máquina cuya función básica es llevar
a cabo operaciones de cómputo (transformaciones) sobre elementos de datos. Como
todas las máquinas, el computador recibe una “materia prima” (datos de
entrada), la transforma a través de un proceso y devuelve un “producto” (datos
de salida).
1.1.1Concepto de programa
El concepto de programa posee múltiples acepciones. Puede ser entendido como el anticipo de lo que se planea realizar en algún ámbito o circunstancia; el temario que se ofrece para un discurso; la presentación y organización de las materias de un cierto curso o asignatura; y la descripción de las características o etapas en que se organizan determinados actos o espectáculos artísticos.
1.1.2 Concepto de información
La información está constituida por un grupo de datos ya
supervisados y ordenados, que sirven para construir un mensaje basado en un
cierto fenómeno o ente. La información permite resolver problemas y tomar
decisiones, ya que su aprovechamiento racional es la base del conocimiento
1.1.3 Tipos de información
La información es un
conjunto organizado de datos procesados, que constituyen un mensaje que cambia
el estado de conocimiento del sujeto o sistema que recibe dicho mensaje.
Existen diversos enfoques para el estudio de la información.
1.2 Tipos de lenguajes de programación
Existen dos tipos de lenguajes claramente diferenciados;
los lenguajes de bajo nivel y los de alto nivel.
1.2.1 Lenguajes de bajo nivel
Son lenguajes totalmente dependientes de la máquina, es
decir que el programa que se realiza con este tipo de lenguajes no se pueden
migrar o utilizar en otras máquinas.

1.2.2 Lenguaje de mediano nivel
Lenguaje de medio nivel es un lenguaje de programación
informática como el lenguaje C, que se encuentran entre los lenguajes de alto
nivel y los lenguajes de bajo nivel.
Suelen ser clasificados muchas veces de alto nivel, pero
permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones
como la creación de sistemas operativos, ya que permiten un manejo abstracto
(independiente de la máquina, a diferencia del ensamblador), pero sin perder
mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
1.2.3 Lenguajes de alto nivel
Son aquellos que se encuentran más cercanos al lenguaje
natural que al lenguaje máquina.
Están dirigidos a solucionar problemas mediante el uso de EDD's.
Están dirigidos a solucionar problemas mediante el uso de EDD's.
1.3 Proceso de compilación e interpretación
La compilación es el proceso de traducir un programa
en código fuente a programa en código objeto (que usa el lenguaje
binario), el programa encargado de compilar se llama compilador.
Los lenguajes interpretados necesitan de un programa que
traduzca en directo el código fuente escrito a instrucciones de la plataforma
en la que se ejecutan. Ejm: Python, Visual Basic Script.
1.3.1 Características de compiladores
El compilador traduce todo el programa antes de ejecutarlo.
Los programas compilados se ejecutan más rápido que los
interpretados, debido a que han sido completamente traducidos a lenguaje
máquina.
Informa al usuario de la presencia de errores en el
programa fuente.
Poseen un editor integrado con un sistema de coloreado para
los comandos, funciones, variables y demás partes de un programa.
1.3.2 Características de interpretes
Un interpretador es un programa informático capaz de
analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los
intérpretes se diferencian de los compiladores en que mientras estos traducen
un programa desde su descripción en un lenguaje de programación al código de
máquina del sistema, los intérpretes sólo realizan la traducción a medida
quesea necesaria, típicamente, instrucción por instrucción, y normalmente no
guardan el resultado de dicha traducción.
1.3.3 Tipos de Código
E l código ASCII es una serie de combinaciones en el
teclado del computador afín de obtener un símbolo digito distinto.
1.4 Entorno de desarrollo
Un entorno de desarrollo integrado es un programa
informático compuesto por un conjunto de herramientas de programación. Puede
dedicarse en exclusiva a un solo lenguaje de programación o bien puede
utilizarse para varios.
1.4.1 Entorno de desarrollo integrado
Un entorno de desarrollo integrado, es un entorno de
programación que ha sido empaquetado como un programa de aplicación, es decir,
consiste en un editor de código, un compilador, un depurador y un constructor
de interfaz gráfica (GUI).
Los IDE proveen un marco de trabajo amigable para la
mayoría de los lenguajes de programación tales como C++, PHP, Python, Java, C#,
Delphi, Visual Basic, etc. En algunos lenguajes, un IDE puede funcionar como un
sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de
programación en forma interactiva, sin necesidad de trabajo orientado a
archivos de texto.
1.4.2 Línea o comando
Unidad 2
Estructura y organización de un programa.
Estructura y organización de un programa.
2.1 Modelos para el desarrollo de software
La Ingeniería de Software surge como la aplicación de
modelos y formas de la ingeniería tradicional a la práctica de construir
productos de software; situación que ha condicionado su accionar al tener como
norte las precisiones y seguridades que en otros ámbitos tiene la ingeniería.
2.1.1 Modelo en cascada
Este es el más básico de todos los modelos y ha servido
como bloque de construcción para los demás paradigmas de ciclo de vida. Está
basado en el ciclo convencional de una ingeniería y su visión es muy simple: el
desarrollo de software se debe realizar siguiendo una secuencia de fases. Cada
etapa tiene un conjunto de metas bien definidas y las actividades dentro de
cada una contribuyen a la satisfacción de metas de esa fase o quizás a una
subsecuentica de metas de la misma.
2.1.2 Modelo en espiral
Es un modelo de proceso de software evolutivo donde se
conjuga la naturaleza de construcción de prototipos con los aspectos
controlados y sistemáticos del MODELO LINEAL y SECUENCIAL. Proporciona el
potencial para el desarrollo rápido de versiones incrementales del software que
no se basa en fases claramente definidas y separadas para crear un sistema.
2.2 Elementos y estructura de un programa
Un programa puede considerarse como una secuencia de
acciones (instrucciones) que manipulan un conjunto de objetos (datos).
2.2.1 Bloque de declaraciones
Toda declaración tiene un ámbito (conjunto
de sentencias) en el que es visible el nombre declarado y se puede usar para
referenciar la vista de la entidad asociada y tener acceso a la misma.
Generalmente, el ámbito de una declaración se extiende hacia adelante y hacia
adentro: una declaración hecha en un subprograma o en un bloque es visible en
todo el resto del mismo subprograma o bloque a partir del punto en que aparece,
incluyendo los subprogramas o bloques anidados en él, salvo que incluyan una
declaración con el mismo nombre (una declaración oculta cualquier otra del
mismo nombre hecha en un bloque más externo).
2.2.2 Bloque de instrucciones
Un bloque de instrucciones es un conjunto de instrucciones
que se ejecutan una detrás de otra y que se encuentran entre llaves. La primera
instrucción de este bloque escribe un mensaje de error en la pantalla, y la
segunda (return;) termina la ejecución de la función main.
Hasta ahora no hemos comprobado si los archivos se abrían correctamente. Sin embargo, la función fopen permite hacerlo porque asigna a f el valor NULL si no puede abrir el archivo correspondiente.
Hasta ahora no hemos comprobado si los archivos se abrían correctamente. Sin embargo, la función fopen permite hacerlo porque asigna a f el valor NULL si no puede abrir el archivo correspondiente.
2.3 Identificadores y tipos de datos
Un dato es la unidad mínima de memoria de información en
una computadora. Se clasifica en simples y estructurados.
Simples
Numéricos --> Enteros, reales
Lógicos -->
Verdadero, Falso
Alfanuméricos --> Cadenas y caracteres
2.3.1 Numéricos
La principal diferencia entre cada uno de los tipos de
enteros es su tamaño, que va desde 1 byte de almacenamiento hasta los 8 bytes.
Las columnas de tipo en- tero pueden recibir dos atributos adicionales, que
deben especificarse inmediatamente después del nombre del tipo:
unsigned. Indica que
el entero no podrá almacenar valores negativos. Es responsabilidad del usuario
verificar, en este caso, que los resultados de las restas no sean negativos,
porque MySQL los convierte en positivos.
zerofill. Indica que la columna, al ser mostrada, rellenará
con ceros a la iz- quierda los espacios vacíos. Esto de acuerdo al valor
especificado por M en la declaración del tipo. Una columna con el atributo
zerofill es al mismo tiempo unsigned aunque no se especifique.
2.3.2 Alfanuméricos
Los datos alfanuméricos permiten trabajar con caracteres y
cadenas de caracteres (secuencias de caracteres). Los caracteres que la
computadora puede utilizar pertenecen al código ASCII (ver el tema en
Wikipedia). Los dos tipos de datos alfanuméricos que se pueden usar son el
tipo caracter y el tipo cadena de caracteres, la diferencia
entre estos dos tipos es que el primero sólo puede almacenar un caractere
mientras que el segundo puede almacenar secuencias y por ende palabras
oraciones y cualquier otro tipo de secuencia .
2.3.1 Lógicos
El tipo lógica permite representar los
valores verdadero y falso.
En el código, los valores verdadero y falso se representan
respectivamente como:
True.
False.
Al imprimirlos usando printf, estos valores aparecerán para
la pantalla respectivamente.
2.4 Operadores y expresiones
Operadores
Los operadores son símbolos especiales que por lo común se utilizan en expresiones.
Los operadores son símbolos especiales que por lo común se utilizan en expresiones.
Expresión
Una expresión es una combinación de variables, operadores y llamadas de métodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor.
El tipo de dato del valor regresado por una expresión depende de los elementos usados en la expresión.
Una expresión es una combinación de variables, operadores y llamadas de métodos construida de acuerdo a la sintaxis del lenguaje que devuelve un valor.
El tipo de dato del valor regresado por una expresión depende de los elementos usados en la expresión.
2.4.1 Jerarquía
de Operadores
consiste en el orden por el cual el ordenador
interpreta las operaciones a realizar ,determinando cuales tienen mas prioridad
que las otras, la jerarquía de los operadores son las siguientes:
1)Multiplicacion
2)Division
3)Suma
4)Resta
partiendo de este principio se podrá apreciar en el
siguiente ejemplo el desarrollo de la jerarquía:
5*3+12-14/2
2.4.2 Operadores
Aritméticos
Los operadores aritméticos se usan para
realizar cálculos de arit
Los operadores aritméticos pertenecen a dos grupos: unos
aceptan operandos de tipo numérico; otros aceptan operandos de tipo
puntero-a-tipoX [3]. Además son de dos tipos; unarios (que
aceptan un solo operando) y binarios mética de números reales y de
aritmética de punteros.
2.4.3 Operadores Lógicos y Relacionales
Se llaman operadores relacionales o de comparación a
aquellos que permiten comparar dos valores evaluando si se relacionan
cumpliendo el ser menor uno que otro, mayor uno que otro, igual uno que otro,
etc. Los operadores lógicos permiten además introducir nexos entre condiciones
como “y se cumple también que” ó . “o se cumple que”.
2.5 Variables
y constantes
Una variable es un objeto de datos con
un nombre, un tipo y un valor asociado
que puede modificarse libremente durante la ejecución de la parte de
un programa en la que es visible (ámbito). Una dec
lalación de variables consta de: (1) una lista de
nombres de las variables que se declaran separadas por comas (",") y
terminada con dos puntos (":"), (2) el tipo de las variables y,
opcionalmente, (3) la asignación de un valor inicial.
2.5.1 Tipos
de variables
Variable independiente
Una variable independiente es aquella cuyo valor
no depende del de otra variable.
Variable dependiente
Una variable dependiente es aquella cuyos valores
dependen de los que tomen otra variable.
Variable cualitativa
Las variables cualitativas se refieren
a características o cualidades que no pueden ser medidas
con números.
2.5.2 Tipos
de constantes
Es un dato cuyo valor no
puede cambiar durante la ejecución del programa. Recibe un valor en el momento
de la compilación ( momento en el cual revisamos que el programa –
algoritmo no tiene errores de sintaxis y se puede ejecutar ) y este valor
que se le dió permanece inalterado durante todo el programa.
2.5.3 Diferencia entre variables y constantes
La variable es un valor que siempre va a depender de otros,
ya se por el tiempo, espacio, ó que esté en función de otro.
En cambio la constante es un valor dependiente, ya està determinado no depende de nadie, su valor no se modifica por más que algunos valores que estén en su entorno varíe.
En cambio la constante es un valor dependiente, ya està determinado no depende de nadie, su valor no se modifica por más que algunos valores que estén en su entorno varíe.
2.5.3 Sintaxis
de aplicación de variables y constantes
Una constante es una partida de datos que permanecen sin
cambios en el programa (durante el desarrollo y ejecución).
Una variable es una partida de datos cuyo valor puede
cambiar en el programa (durante el desarrollo y ejecución).
Unidad 3
3.1 Estructuras secuenciales
La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.
3.1 Estructuras secuenciales
La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.

Estructuras
selectivas, simple, doble, múltiple.
La especificación formal de algoritmos tiene realmente
utilidad cuando el algoritmo requiere una descripción más complicada que una
lista sencilla de instrucciones. Este es el caso cuando existen un número de
posibles alternativas resultantes de la evaluación de una determinada
condición. 

Estructuras
iterativas
Este ciclo es uno de los mas usados para repetir una
secuencia de instrucciones, sobre todo cuando se conoce la cantidad exacta de
veces que se quiere que se ejecute una instrucción simple o compuesta.
CICLO
WHILE
Permite que se repita cierta acción en cuanto la condición evaluada sea verdadera y en el momento en que la condición sea falsa saldrá del ciclo y continuara con la siguiente instrucción
Permite que se repita cierta acción en cuanto la condición evaluada sea verdadera y en el momento en que la condición sea falsa saldrá del ciclo y continuara con la siguiente instrucción
DO –
WHILE
Su diferencia básica con el ciclo while es que 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.
Su diferencia básica con el ciclo while es que 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.

Arreglos
y Matrices
Un arreglo es una estructura de datos, o más técnicamente,
un espacio de memoria que permite almacenar una colección de elementos, todos
del mismo tipo. Conviene imaginar un arreglo como una secuencia contigua de
celdas (espacios de memoria), o casillas, en cada una de las cuales se puede
guardar un elemento de la colección
.
Tipos
de arreglos
*1* Arreglos unidimensionales
*2* Arreglos bidimensionales
*3* Arreglos multidimensionales
*2* Arreglos bidimensionales
*3* Arreglos multidimensionales
1) Un arreglo unidimensional es un tipo de datos
estructurado que está formado de una colección finita y ordenada de datos del
mismo tipo. Es la estructura natural para modelar listas de elementos iguales.
2) El arreglo bidimensional, al igual que el anterior, es un tipo de dato estructurado, finito ordenado y homogéneo. El acceso a ellos también es en forma directa por medio de un par de índices.
Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y columnas.
3) El arreglo multidimensional, también es un tipo de dato estructurado, que está compuesto por n dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índice, uno para cada dimensión
2) El arreglo bidimensional, al igual que el anterior, es un tipo de dato estructurado, finito ordenado y homogéneo. El acceso a ellos también es en forma directa por medio de un par de índices.
Los arreglos bidimensionales se usan para representar datos que pueden verse como una tabla con filas y columnas.
3) El arreglo multidimensional, también es un tipo de dato estructurado, que está compuesto por n dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índice, uno para cada dimensión

Declaración
e inicialización de un arreglo
Subíndice
El valor de cada elemento de un array (, vector
o matriz) está asignado a un nombre de la variable y a un subíndice. El primer
elemento del array tiene el subíndice 0, el subíndice 1 es el elemento que
sigue al elemento 0 en la horizontal; y así hasta el final de la primera fila y
progresivamente para las siguientes filas. 

Almacenamiento
en memoria de los arreglos
Todas las variables que se han considerado hasta ahora son
de tipo simple. Una variable de tipo simple consiste de una sola caja de
memoria y sólo puede contener un valor cada vez. Una variable de tipo
estructurado consiste en toda una colección de casillas de memoria. Los tipos
de datos estudiados: entero, real, alfabético son considerados como datos de
tipo simple, puesto que una variable que se define con alguno de estos tipos
sólo puede almacenar un valor a la vez, es decir, existe una relación de uno a
uno entre la variable y el número de elementos (valores) que es capaz de
almacenar
. 

Arreglos
Unidimensionales y Bidimensionales
Unidimensionales
Un arreglo unidimensional es
un tipo de datos estructurado que está formado de una colección finita y
ordenada de datos del mismo tipo.Es la estructura natural para modelar listas
de elementos iguales.
Bidimensionales
Son estructuras de datos que
agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar
individualmente y se puede referenciar con un mismo nombre. 

Acceso a los elementos de los arreglos unidimensionales
Un arreglo unidimensional es un tipo de datos estructurado
que está formado por una colección finita y ordenada de datos del mismo tipo.
Es la estructura natural para modelar listas de elementos iguales. Los datos
que se guarden en los arreglos todos deben ser del mismo tipo.

Lectura
y escritura de los arreglos unidimensionales
Las filas o renglones son las horizontales, y las columnas
son las verticales en la matriz.
En la escritura y lectura es importante
la presentación por pantalla, e importante que por pantalla se
identifiquen las filas y las columnas, esto se puede lograr con una función
especial de ubicación por pantalla.

Acceso
a los elementos mediante ciclos
Los arrays, arreglos o vectores forman parte de la amplia
variedad de estructuras de datos que nos ofrece C++, siendo además una de las
principales y más útiles estructuras que podremos tener como herramienta de
programación. Los arrays, arreglos o vectores (como los quieras llamar), son
utilizados para almacenar múltiples valores en una única variable. En un
aspecto más profundo, los arrays, permiten almacenar muchos valores en
posiciones de memoria continuas, lo cual permite acceder a un valor u otro de manera
rápida y sencilla. Estos valores pueden ser números, letras o cualquier tipo de
variable que deseemos incluso tipos de datos propios.

Oye si
ResponderBorrar