0% encontró este documento útil (0 votos)
46 vistas16 páginas

Fundamentos de Computación y Programación

Cargado por

claraithurrart03
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
46 vistas16 páginas

Fundamentos de Computación y Programación

Cargado por

claraithurrart03
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Resumen RPA

Capítulo 1
computadora

es un sistema digital con tecnología microelectrónica compuesta por estos tres


elementos:
CPU (del inglés Central Processing Unit) o Unidad Central de Procesamiento.
Memoria.
Dispositivos de Entrada y Salida.
todos estos elementos interconectados por un canal de comunicación (llamado “bus”).
existen dos grandes grupos:
de propósito general
dedicadas
hardware

es una palabra inglesa que como no posee una traducción adecuada, fue admitida por
la Real Academia Española
es el conjunto de los componentes que integran la parte material y tangible de una
computadora
por ejemplo: chips, circuitos, cables, periféricos de todo tipo y cualquier otro
elemento físico involucrado
software

es una palabra inglesa qie como no posee una traducción adecuada, fue admitida por
la Real Academia Española
usado por primera vez en 1958 por John W. Tukey
es el conjunto de todos los programas de cómputo, documentación y también los
datos asociados que forman parte de un sistema de computación
bit

es la unidad mínima para representar información


permite almacenar únicamente dos valores, representados con 0 y 1
es el acrónimo de binary digit
introducido por John W. Tukey
con n bits se puede representar 2^n valores posibles
byte

es una unidad de medida utilizada en informática


equivale a 8 bits y permite representar 2^8=256 valores
surgió de la palabra inglesa bite, ya que era la cantidad más pequeña de datos que
una CPU podía "morder" a la vez.
problema

1
es un planteamiento de una situación cuya respuesta desconocida debe obtenerse a
través de métodos científicos
no resulta evidente el camino a seguir, no se dispone de fórmulas o métodos para
aplicar
existen varios caminos para resolverlo
requiere aplicar y vincular conocimientos previos
ejercicio

se busca la solución a una consigna aplicando una fórmula o método conocido


algoritmo

es la especificación de una secuencia de pasos u operaciones, que al ser ejecutadas


permiten resolver un problema
importa el orden de los pasos indicados
existe para resolver un problema
debe tener un único punto de inicio y al menos un punto final
todos sus pasos deben estar expresados con operaciones comprensibles para quién
las ejecutará, llamados primitivas
pasos para construirlo:
interpretación adecuada del problema planteado
usando ejemplos
diseño
verificación
se pueden combinar secuencias, condiciones y repeticiones para construirlo
primitiva

es una operación conocida, utilizada en un algoritmo y considerada como básica.


traza

es una simulación de la ejecución real de los pasos de un algoritmo


se lleva cuenta de los movimientos realizados y los cambios que se producen en
los elementos o datos involucrados
permite encontrar errores en el diseño del algoritmo
para hacer una traza es indispensable disponer de casos de prueba
casos de prueba

son situaciones concretas en las cuales se puede aplicar el algoritmo desarrollado


valores particulares para los datos u elementos involucrados en el problema
se utilizan para verificar que el algoritmo se comporta de la manera esperada
debe incluir cuál es el resultado esperado
existen dos tipos:
significativo: caso de prueba que ayuda a verificar una opción que no fue
verificada por otro caso de prueba
redundante: no aporta información nueva porque plantea una situación ya
verificada por otro caso de prueba
estructuras condicionales

2
si <condición> entonces <opción 1> de lo contrario <opción 2>
se puede omitir el "de lo contrario"
se pueden anidar
tablas de verdad

plasman en una tabla los resultados de las operaciones lógicas


valores de verdad o valores lógicos

verdadero y falso
expresiones lógicas

expresión que tiene como resultado verdadero o falso


en estas los operadores lógicos tienen precedencia:
no
y
o
dos expresiones lógica son equivalentes si para todos los casos donde una es
verdadera la otra también es verdadera
bucles/ciclos/lazos/loops

repetición condicional
repetir <número> veces
permiten expresar de forma abreviada una secuencia repetitiva de
operaciones
repetición condicional
repetir mientras <condición>
se repite siempre que la condición sea verdadera
puede que no se repita ni una sola vez
repetir hasta <condición>
se repite hasta que la condición sea verdadera
puede no repetirse ni una sola vez
"Primero un caso particular, luego generalizar"

Capítulo 2
lenguaje de programación

es un lenguaje artificial y formal


creado para expresar procesos que pueden ser llevados a cabo por computadoras
definido por:
símbolos
reglas sintácticas -> definen la estructura
reglas semánticas -> definen el significado
programa de computadoras

conjunto organizado de instrucciones que están escritas en un lenguaje de


programación
al ser ejecutadas por una computadora, resuelven una tarea específica

3
pasos para crearlo:
interpretación del problema
usando ejemplos
diseño del algoritmo
verificación del algoritmo
implementación del algoritmo en un lenguaje de programación
edición, compilación y ejecución
verificación del programa
código fuente

texto de un programa de computadoras


compilador

programa que traduce el código fuente de un programa de un lenguaje de


programación a otro (típicamente lenguaje máquina), permitiendo que se genere
código ejecutable
código ejecutable

secuencia de código que la computadora ejecuta directamente al ser invocado


programador

persona con la capacidad de desarrollar un algoritmo para resolver un problema y


crear el código fuente de un programa libre de errores
de esta forma permite crear una aplicación que al ejecutarse en una computadora,
resuelva el problema
usuarios

personas que usan el programa o aplicación


identificador

elemento textual que nombra una entidad de un lenguaje de programación


en Pascal
existen tres tipos
reservados
tienen un significado asignado en el lenguaje
ese significado es fijo y no se puede cambiar
ejemplos:
program
const
var
begin
end
predefinidos
tienen un significado pre-establecido
ese significado puede cambiarse
ejemplos:
real

4
write
writeln
read
definidos por el programador
el significado lo establece la persona que escribe el programa
ese significado puede cambiarse
ejemplos:
nombres de variables y funciones declaradas en el programa
restricciones
solo pueden contener letras, números y guiones bajos
no pueden ser iguales a una palabra reservada
no pueden utilizarse vocales con acentos ni la letra ñ
deben comenzar con una letra o guion bajo
programas en Pascal

case insensitive

formado por bloques

encabezado

program nombre_programa;

bloque de declaraciones

const const1 = 1; const2 = 2;


var var1, var2: tipo1; var3, var4: tipo2;

bloque ejecutable

begin
write('Hello World!');
end.

formado por sentencias/instrucciones/proposiciones

separadas por ;
declaración de datos en Pascal

el valor de las constantes no cambia durante el programa, como si lo pueden hacer las
variables
tanto las constantes como las variables deben tener un tipo de dato definido
cuando se declara una variable aún no posee ningún valor inicial
para inicializar el valor de una variable se puede utilizar la primitiva read y la
primitiva de asignación :=
primitiva de asignación

5
<variable> := <expresión>
primero se evalúa la expresión de la derecha, obteniendo un valor
luego se modifica el valor de la variable perdiendo el valor anterior
errores en los programas

error de compilación
es un error detectado por el compilador al momento que se está realizando la
compilación de un código fuente. Son los más fáciles de encontrar y resolver
error de ejecución
ocurre cuando durante la ejecución del programa hay una situación anormal
que provoca que la ejecución se corte abruptamente
error de programación
es un error en la lógica del algoritmo o programa el cual causa que no se
resuelva correctamente la tarea que debe hacer el programa
diagramas sintácticos

son una forma gráfica de especificar la sintaxis de un lenguaje de programación


estos diagramas se recorrer siguiendo las flechas que vinculan los distintos elementos
del programa
estos diagrama poseen solo cuatro elementos que los definen:
Un nombre y una flecha que indican el comienzo de un diagrama para la
definición de un elemento
Figuras redondeadas que indican un texto que se debe incluir tal y como
aparece
Rectángulos con un nombre dentro, que indican que se hace referencia a otro
diagrama sintáctico que posee dicho nombre
Flechas que indican el orden de lectura
buenos hábitos de programación

hacer comentarios que permitan explicar la intención de escribir ciertas partes del
programa
usar nombres significativos para los identificadores
tipos de datos

define el conjunto de valores posibles que puede tomar un elemento de un programa,


las operaciones que pueden aplicarse sobre esos valores, además de su representación
interna para su almacenamiento en memoria
tipos básicos y predefinidos en Pascal
integer
subconjunto de los números enteros
posee un máximo y un mínimo
el máximo está almacenado en la constante predefinida
maxint
operaciones
+, -, *, /, div (división entera), mod (resto de la división entera)
=, <>, >, <, >=, <=

6
funciones predefinidas
sqr(), abs()
representación interna
?
real
subconjunto finito de los números reales
tiene mínimo y máximo
tiene precisión máxima -> no se cumple el hecho de que entre dos
reales existe siempre otro número real
se expresa en notación científica
?
operaciones
+, -, *, /
=, <>, >, <, >=, <=
funciones predefinidas
abs(), exp() (e elevado a la X), ln(), round(), sqr(), sqrt(),
trunc()
round()
si la parte decimal es 0.5 y la parte entera es par, redondea
"para abajo", si la parte entera es impar, redondea "para
arriba"
representación interna
en general 6 bytes, pero siempre más rango que integer
char
los 256 símbolos del código ASCII
operaciones
=, <>, >, <, >=, <=
funciones predefinidas
chr(), ord(), succ(), pred()
representación interna
1 byte

boolean

7
true, false
operaciones
and, or, not
=, <>, >, <, >=, <=
representación interna
1 byte (podría ser un 1 bit)
expresiones

son aquellas estructuras que permiten calcular un valor a partir de otro


precedencia
not
*, /, div, mod, and
+, -, or
=, <>, <, >, <=, >=
secuencia de caracteres

van entre comillas simples


tipo estructurado string (no lo usamos)
primitivas predefinidas para la interacción con las personas

read
lee un elemento del buffer y se lo asigna a una variable que tiene como
parámetro
si no hay un elemento en el buffer espera a que se carguen valore y se presione
enter
readln
tiene la misma función que read, pero además busca el enter en el buffer, por lo
que, como efecto colateral, lo vacía
readln(variable) es lo mismo que read(variable); readln;
asociado a la ejecución de un programa en Pascal hay un buffer dedicado a almacenar
lo que se escribe por teclado
buffer (amortiguador)

es un espacio de memoria en el cual se almacenan los datos de formal temporal


se utiliza para mitigar/atenuar/paliar la diferencia de velocidad entre doss o más
dispositivos entre los cuales se están transfiriendo datos
el dispositivo emisor primero envía los datos al buffer, a la velocidad a la que es capaz
de hacerlo, mientras que el dispositivo receptor los lee a la velocidad a la que es
capaz, ya sea más o menos rápido en hacerlo que el emisor en enviarlos
los datos enviados por el emisor son almacenados en el orden de llegada y son leídos
en el mismo orden en el que fueron enviados

Capítulo 3
if-then-else

sintaxis

8
if <expresión booleana> then
<sentencia>
else
<sentencia>;

sentencia compuesta

permite que una secuencia de sentencias sea considerada como una sola sentencia
se construye encerrando las sentencias deseadas, separadas por punto y coma, entre
un begin y un end
permite anidar distintas estructuras de control
pautas de buena programación

comentar adecuadamente el código fuente


elegir nombre significativos para los identificadores
usar el tipo de dato más adecuado
indentar el código
usar textos apropiados en los mensajes que se muestran por pantalla
no agregar código repetido
analogía

relación de semejanza entre cosas distintas


recomendaciones para la construcción de casos de prueba

tiene que contener el resultado esperado


los ejemplos utilizados para entender el problema son buenos candidatos
debe haber una cantidad adecuada de cada uno de los comportamientos esperados
hay que asegurarse de que las expresiones lógicas son correctas
hacer un caso de prueba por cada posible resultado de la evaluación de las
expresiones

Capítulo 4
for
sintaxis

for foo := inicio to fin do


sentencia;

for foo := inicio downto fin do


sentencia;

semántica general

la variable de control (foo en el ejemplo de arriba) debe ser de un tipo ordinal


(que posee un orden), es decir, puede ser char, integer o boolean
inicio y fin son dos expresiones que deben ser del mismo tipo que la variable
de control

9
al ejecutarse esta sentencia for primero se evalúan las expresiones, se le asigna
el resultado de inicio a foo
luego se ejecuta una cantidad fija de veces la sentencia, que puede ser simple
o compuesta, dependiendo de los valores de inicio y fin
en el caso de to

en cada iteración la variable de control es incrementada en uno hasta llegar a


fin
la cantidad de veces que se ejecuta una sentencia en un for se puede calcular
con la fórmula: fin - inicio + 1
en el caso de downto

en cada iteración la variable de control es decrementada en uno hasta llegar a


fin
la cantidad de veces que se ejecuta una sentencia en un for se puede calcular
con la fórmula: inicio - fin + 1
la sentencia for puede ejecutarse 0 o más veces

es un error de programación alterar el valor de la variable de control o el valor de los


límites de inicio y fin

para alterar el incremento o decremento se pueden usar variables auxiliares que


obtengan un valor calculado a partir de la variable de control

Capítulo 5
while

sintaxis

while expresion_booleana do
sentencia;

semántica

se evalúa expresion_booleana
en el caso en el que la expresión sea true, se ejecuta la sentencia y se
vuelve a ejecutar el propio while, repitiendo el proceso
en el caso en el que la expresión sea false no se ejecuta la sentencia y
se continúa con la ejecución del programa
similitudes y diferencias entre while y for

similitudes
ambos permiten repetir cero o más veces una sentencia compuesta
diferencias
el while es una repetición condicional, mientras que el for es una repetición
incondicional

10
no todo lo que se puede hacer con un while se puede hacer con un for, esto se
debe a que con el while no es necesario conocer de antemano la cantidad de
veces se debe repetir
todo lo que se puede hacer con un for sí se puede hacer con un while, porque
se puede implementar el incremento o decremento de la variable de control
con un for no se puede caer en un ciclo infinito, mientras que con un while sí
ciclo infinito

ocurre cuando una repetición condicional no deja de ejecutarse nunca porque la


condición que evalúa nunca cambia de valor booleano, retornando siempre el mismo
resultado
repeat-until

sintaxis

repeat
sentencias
until expresion_booleana

semántica

al comenzar la ejecución de esta sentencia se ejecutan todas las sentencias


que contiene, luego se evalúa la expresion_booleana
si la esta expresión da false como resultado se vuelve a ejecutar el
repeat-until
si esta expresión da true como resultado se continúa con la sentencia
que le sigue al repeat-until
similitudes y diferencias entre while y repeat-until

similitudes
ambas son repeticiones condicionales
ambas dependen de una expresión lógica para determinar si se continúa
repitiendo o no
no se conoce al cantidad de veces que se repetirá la sentencia
todo lo que se puede hacer con un while se puede hacer con un repeat-
until
diferencias
usan identificadores reservados distintos (no se si es necesario incluir esto en
una potencial respuesta)
la condición del while se evalúa al principio, mientras que la del repeat se
evalúa al final, por lo que al menos una vez se va a ejecutar
las condiciones del while y el repeat son inversas: un while se repite si la
condición es verdadera y un repeat se repite si la condición es falsa
el while se repite 0 o más veces mientras que el repeat 1 o más veces
comparación entre el for y el repeat

11
las diferencias se mantienen similares a las que tiene el for con el while, pero se le
agrega el hecho de que el repeat se ejecuta una vez sí o sí, no como el for que puede
no ejecutarse
debugging

proceso metodológico de buscar y reducir el número de errores o defectos (bugs) de


un programa, con el objetivo de lograr que el programa tenga el comportamiento
esperado
eoln()

retorna true cuando encuentra un enter en el buffer


retorna false en caso de que el buffer esté vacío o haya elementos que leer que no
sean enter

Capítulo 6
case

sintaxis

case expresion of
opciones1: sentencia1;
opciones2: sentencia2;
else sentencia3
end

semántica

primero se calcula el valor de la expresión


luego busca si existe alguna opción que tenga el valor obtenido
si existe se ejecuta la sentencia que corresponde con dicha opción (la que
está luego de los :) y termina la ejecución del case
si no existe y está presente un else, se ejecuta la sentencia que sigue al
else
de esta forma se puede dar que se ejecute alguna de las sentencias presenten
en el case o ninguna
las opciones de cada caso deben ser disjuntas, si hay opciones repetidas tiene lugar un
error de compilación

el orden en el que estén las opciones no afecta al resultado

case vs if-then-else

es conveniente elegir la sentencia que exprese la solución que se quiere implementar


de una forma más simple y natural, facilitando su implementación y lectura

Capítulo 7
funciones

12
definición de la función
nombre
parámetros formales
tipo de dato de la función
bloque ejecutable
asignación del resultado de la función
el nombre de una función no es una variable y se usa solo para darle valor de retorno
a la función, si se usa en la parte derecha de una asignación se está llamado a la
propia función
procedimientos

definición del procedimiento


nombre
parámetros formales
bloque ejecutable
registro de activación

por cada primitiva que es ejecutada se crea en memoria un registro de activación


donde se almacenan los valores de las variables locales y parámetros
diferencias y similitudes entre procedimientos y funciones

similitudes
ambos pueden declarar constantes y variables propias
tienen un bloque ejecutable
permiten la implementación de primitivas
requieren ser parte de un programa para ser ejecutadas
pueden tener 0 o más parámetros
diferencias
la mayor diferencias es como se realiza la llamada a cada uno
una función se debe llamar dentro de una expresión y cuando se retorna
de su llamada se sigue ejecutando la misma sentencia en donde fue
llamada
un procedimiento se llama como una sentencia y al retornar de la
ejecución del procedimiento se ejecuta la sentencia siguiente a la llamada
la función tiene un tipo asociado
la función aunque no tenga parámetros devuelve un valor
creación de primitivas

las funciones y los procedimientos son formas de construir primitivas nuevas en el


código
para construirlas se sigue el mismo procedimiento que para solucionar un problema
cuándo usar funciones o procedimientos

si se quiere llamar a la primitiva desde una expresión, entonces la primitiva tiene que
ser una función
si se quiere llamar a la primitiva como una sentencia, entonces la primitiva tiene que
ser un procedimiento

13
si la primitiva no va a retornar ningún resultado, entonces conviene usar un
procedimiento
parámetros

formales
son aquellos que están en la definición de la primitiva, reciben ese nombre
porque le dan "forma"
pueden ser de dos tipos
por valor
reciben una copia del valor del parámetro efectivo, se los utiliza
solamente como entrada de datos
por referencia
se les antepone el identificador var y se crea una referencia entre el
parámetro formal y el parámetro efectivo, todo cambio que se
realice en el parámetro formal afectará al parámetro efectivo
efectivos
son aquellos valores que se le introducen a las primitivas al momento de llamar
su ejecución
si corresponde a un parámetro formal por valor este parámetro puede ser un
valor, una expresión o una variable del mismo tipo que el parámetro formal
si corresponde a un parámetro formal por referencia este parámetro debe ser
una variable del mismo tipo que el correspondiente parámetro formal
ventajas de la implementación de primitivas

se pueden reutilizan en otros programas para resolver otros problemas


se puede compartir el código más fácilmente con otros programadores y proyectos
es más fácil verificar y buscar errores
se puede alterar el procedimiento interno de una primitiva sin alterar el resto del
programa
es más fácil extender un programa

Capítulo 8
estrategias para resolver problemas

descomposición/"top-down"
consiste en dividir un problema en distintas partes que se pueden resolver por
separado denominadas sub-problemas
composición/"bottom-up"
consiste en comenzar por las primitivas ya disponibles y con esas ir
construyendo y componiendo partes más complejas que pueden ser usadas
como nuevas primitivas
modificación de la metodología propuesta

entender el problema y hacer los casos de prueba


dividir en sub-problemas
resolver cada sub-problema y verificar

14
para cada sub-problema implementar primitivas
integrar todo en un programa y verificar
bloques

en Pascal un bloque puede ser el propio programa y las funciones o procedimientos


que lo componen
estos bloques se anidan uno dentro del otro
dentro de un mismo bloque no puede haber identificadores iguales para distintos
elementos
esto permite que se puedan usar identificadores iguales pero en bloques
distintos
los identificadores pueden ser de constantes, variables, parámetros (en el caso de que
el bloque sea una función o procedimiento), procedimientos y funciones
el identificador de una primitiva no pertenece al bloque de la primitiva, pertenece al
bloque que lo contiene
un identificador es referenciable o visible en un bloque si es parte de su entorno de
referencia y no está oculto
entorno de referencia

un identificar puede ser usado en un determinado bloque si está declarado dentro del
entorno de referencia de dicho bloque
el entorno de referencia de un bloque esta formado por cuatro entornos
entorno local
conjunto de identificadores declarados dentro del bloque (parámetros
formales, constantes, variables, procedimientos y funciones)
entorno global
conjunto de identificadores declarados en el bloque del programa
principal
entorno no-local
conjunto de identificadores declarados en los bloques que contienen a
dicho bloque, exceptuando el global
entorno predefinido
conjunto de identificadores predefinidos por el compilador, disponibles
para todo el programa
cuando se hace referencia a un identificar dentro de un bloque primero se busca en el
entorno local, luego en el no-local, luego el global y, por último, el entorno
predefinido
un identificador oculta a otro si en la búsqueda del identificador es encontrado antes
que otro en un entorno distinto, siguiendo el orden expuesto en el punto anterior
el alcance de un identificador lo conforman todas aquellos bloques donde el
identificador es visible
es un error de programación que un procedimiento o función utilice o modifique una
variable que no pertenezca a su entorno de referencia local

Capítulo 9

15
recursión

es la forma en la cual se especifica un proceso basado en su propia definición


un algoritmo recursivo se define en términos de sí mismo
algoritmos recursivos

están formados por


un caso base o trivial que no se define en términos de sí mismo
un caso general o recursivo donde se hace referencia a sí mismo pero sobre una
instancia reducida del problema
planteo recursivo

es una solución a un problema en donde se indica un caso base y un caso general


metodología propuesta

comprender el problema con ejemplos significativos


hacer el planteo recursivo
verificar el planteo
implementar la primitiva
verificar la primitiva

16

También podría gustarte