Está en la página 1de 12

M. Sc. Ing.

Angélica Garzón Cuellar

UNIVERSIDAD AUTONOMA GABRIEL RENE


MORENO

FACULTAD DE INGENIERIA EN CIENCIAS DE LA COMPUTACION


Y TELECOMUNICACIONES
INGENIERIA INFORMATICA

DOCENTE
MATERIA
ESTUDIANTE
N DE REGISTRO

SANTA CRUZ −¿ BOLIVIA


2023
PRACTICO UNIDAD I: FUNDAMENTOS DE
PROGRAMACIÓN
1
M. Sc. Ing. Angélica Garzón Cuellar

Investigar y definir los siguientes conceptos básicos, fases de problemas, elementos de


programación y representación de algoritmos.

1. Conceptos Básicos

1.1. Definición de Algoritmo

Es un conjunto de instrucciones o reglas definidas y no-ambiguas, ordenadas y finitas que


permite, típicamente, solucionar un problema, realizar un cómputo, procesar datos y llevar
a cabo otras tareas o actividades.

1.2. Lenguajes de programación y tipos de lenguajes de Programación

Los lenguajes de programación sirven únicamente para comunicarse con una máquina y
controlar su comportamiento.
Existen una gran cantidad de lenguajes de programación (por ejemplo: POO, C, C++, C#,
Prolog, Pascal, ALGOL, Java, etc) creados para diferentes objetivos. Todos ellos tienen
un conjunto de reglas sintácticas y semánticas que sirven para definir el tipo de datos con
los que se puede trabajar con ellos y, en consecuencia, el tipo de acciones que se pueden
llevar a cabo con ellos.
Es por esto que cada uno de los diferentes lenguajes de programación que existen (que
son muchísimos) son más adecuados para llevar a cabo una función u otra.
Los principales tipos de lenguajes de programación son:
I. Lenguajes de máquina.
II. Lenguajes de bajo nivel (ensambladores o Maquina Ensambladora).
III. Lenguajes de alto nivel.

1.2.1. Maquina ensamblador y alto nivel

 Un lenguaje bajo nivel es aquel en el que sus instrucciones ejercen un control


directo sobre el hardware y están condicionados por la estructura física de las
computadoras que lo soportan. El uso de la palabra bajo en su denominación no
implica que el lenguaje sea menos potente que un lenguaje de alto nivel, sino que
se refiere a la reducida abstracción entre el lenguaje y el hardware.

 Un lenguaje de programación de alto nivel se caracteriza por expresar los


algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar
de la capacidad con que los ejecutan las máquinas. Estos lenguajes permiten una
máxima flexibilidad al programador a la hora de abstraerse o de ser literal.
Permiten un camino bidireccional entre el lenguaje máquina y una expresión casi
oral entre la escritura del programa y su posterior compilación.

2
M. Sc. Ing. Angélica Garzón Cuellar

1.3. Traductores de Lenguajes

Los traductores de lenguaje son herramientas esenciales en la programación o


desarrollo, encargándose de convertir código fuente de un determinado lenguaje de
programación a código máquina que puede «entender» directamente el ordenador.
De acuerdo al modo en que llevan a cabo el proceso de conversión, los traductores se
dividen en dos conjuntos: intérpretes y compiladores.

1.3.1. Compiladores, Intérpretes

 Los Compiladores son los que convierten el código fuente de un programa en


código máquina, generando en el camino un recurso adicional (un ejecutable) que
será el que utilizaremos para ejecutar el programa.
En realidad, el programa fuente (programa con el código fuente, valga la
redundancia) será convertido, sentencia a sentencia, a código máquina, creando
un programa objeto o código objeto.
Sin embargo, para crear el programa final, autoejecutable, será necesario un
proceso adicional: el enlazado o montaje (realizado por el programa montador,
enlazador o linker).
El resultado final, será un programa autoejecutable que no necesitará ninguna
herramienta adicional para hacerlo. Simplemente le indicaremos que se ejecute
cuando lo deseemos y así lo hará.

 Un intérprete es un traductor que ejecuta las líneas de código que conforman un


programa una a una y directamente. Es un programa que va leyendo el código
fuente de otro programa y lo va ejecutando según lo lee.
El código máquina generado en el momento de la traducción no es almacenado
para su posterior ejecución cuando se solicite. Por tanto, el programa realizado
con un lenguaje de programación traducido por un intérprete, siempre necesitará
a éste para poder ejecutarse. No existe independencia entre la fase de traducción
y ejecución.
Cada vez que el programa necesite ejecutarse, el traductor tendrá que convertir el
código fuente a código máquina (interpretar). Esta característica hace que, por
regla general, los lenguajes que usan este tipo de traductor ofrezcan un menor
rendimiento.
En contrapartida, ofrecen un mejor entorno de programación, depuración y
mantenimiento que el otro conjunto de traductores: los compiladores.

1.3.2. Fases de compilación

Existen varias fases de compilación que son:

 Código o Programa Fuente.

 Compilador (Traductor).

3
M. Sc. Ing. Angélica Garzón Cuellar

 Programa Objeto.

 Enlazador (Linker).

 Programa Ejecutable (en Lenguaje Maquina).

1.4. Definición de Programa

Un programa es un conjunto de pasos lógicos escritos en un lenguaje de programación


que nos permite realizar una tarea específica. El programa suele contar con una interfaz
de usuario, es decir, un medio visual mediante el cual interactuamos con la aplicación.
Algunos ejemplos son la calculadora, el navegador de internet, un teclado en pantalla
para el celular, etc.

2. Fases en la Resolución de Problemas

2.1. Análisis

Mediante preguntas como: “¿Cuál es la incógnita? ¿Cuáles son los datos? ¿Cuál y cómo
es la condición?”. El Análisis consiste en contextualizar y profundizar el problema a
resolver y dar el tipo de programa a usar. Generalmente esta etapa es de las más
complicadas por superar, puesto que muchas veces un joven inexperto busca expresar
procedimientos antes de verificar si esos procedimientos pueden llevarse a cabo en la
naturaleza que enmarca el problema.

2.2. Diseño

En esta fase, se sugiere encontrar algún problema similar al que se confronta. En este
momento, se está en los preámbulos de emplear alguna metodología. Es saber cómo el
programa hace la tarea solicitada y la forma es, como dice la frase “Divide y Vencerás”, es
dividir el problema en subproblemas y a continuación dividir esos subproblemas en un
nivel más bajo para así implementar una solución al programa en la computadora. Este
método se conoce como diseño descendente o modular.

2.3. Implementación

Después de tener modulado el problema en un programa este debe ejecutarse y luego


observar los resultados. Desde luego que el tiempo para resolver el problema es relativo
(a veces corto, a veces largo), en muchas ocasiones; es necesario un ir y venir entre la
concepción (análisis) y la ejecución (diseño) del problema para obtener resultados
favorables. En este sentido, han existido múltiples problemas matemáticos abiertos
durante muchos años, por ejemplo, el último teorema de Fermat conjeturado en el siglo
XVll que no fue demostrado sino hasta 1995.

4
M. Sc. Ing. Angélica Garzón Cuellar

2.4. Prueba

Es en esta fase en donde la resolución del problema da pie al programa ejecutable que te
da la respuesta, pero no se determinó que el resultado del programa sea correcto. Para
ello se utiliza algunos métodos diferentes para dan autenticidad que el resultado del
programa es correcto, y uno de las más conocidas es “La prueba de escritor”.

3. Elementos de Programación

III.1. Constantes y variables

 Una constante es un valor que no puede ser alterado o modificado durante la


ejecución de un programa, únicamente puede ser leído.
Una constante corresponde a una longitud fija de un área reservada en la
memoria principal del ordenador, donde el programa almacena valores fijos.
Por ejemplo: El valor de PI = 3,1416
Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en
la mayoría de lenguajes.
Una constante de caracteres consiste en un carácter válido encerrado dentro de
apóstrofos; por ejemplo,

'B' '+' '4' ';'

Si se desea incluir el apóstrofo en la cadena, entonces debe aparecer como un


par de apóstrofos, encerrados dentro de simples comillas.

""

Una secuencia de caracteres se denomina normalmente una cadena y una


constante tipo cadena es una cadena
encerrada entre apóstrofos. Por consiguiente, ‘Juan Mínguez' y 'Pepe Luis García'
son constantes de cadena válidas.

Constantes lógicas (boolean)


Sólo existen dos constantes lógicas o boolean:

verdadero falso

La mayoría de los lenguajes de programación permiten diferentes tipos de


constantes: enteras, rea les, caracteres y boolean o lógicas, y representan datos
de esos tipos.

 Una variable es un objeto o tipo de datos cuyo valor puede cambiar durante el
desarrollo del algoritmo o ejecución del programa. Dependiendo del lenguaje, hay
diferentes tipos de variables, tales como enteras, reales, carácter,
lógicas y de cadena. Una variable que es de un cierto tipo puede tomar
únicamente valores de ese tipo.
Una variable de carácter, por ejemplo, puede tomar como valor sólo caracteres,
mientras que una variable entera puede tomar sólo

5
M. Sc. Ing. Angélica Garzón Cuellar

valores enteros.
Si se intenta asignar un valor de un tipo a una variable de otro tipo se producirá un
error de tipo.
Una variable se identifica por los siguientes atributos: nombre que lo asigna y tipo
que describe el uso de la variable.

Los nombres de las variables, a veces conocidos como identificadores, suelen


constar de varios caracteres alfanuméricos, de los cuales el primero normalmente
es una letra. No se deben utilizar —aunque lo permita el lenguaje, caso de
FORTRAN— como nombres de identificadores palabras reservadas del lenguaje
de programación. Nombres válidos de variables son:

A510
NOMBRES Letra Salario Mes
NOTAS Horas Segundo Apellido
NOMBRE_APELLIDOS2 Salario Ciudad

III.2. Tipos de Datos (Naturales, Enteros, Reales, Caracteres, Cadenas,


Lógicos)

 Tipo de dato natural: Son los números naturales, solo positivos, desde el 1 hasta
el infinito. Y es un conjunto infinito de términos matemáticos positivos que
normalmente se llaman “N”, compuesto por los números sin decimales. En
pseudocódigo se suele utilizar la palabra reservada "natural" para este tipo de
datos.

 Tipo de dato entero: Son los números naturales positivos y negativos, más el
cero. Se trata de un conjunto infinito de términos que en matemáticas usualmente
se denomina "Z", compuesto por los tampoco números sin decimales. Cada
término crece o decrece según para donde nos desplacemos en una unidad, por
ejemplo 12, 13, 14, 15 o -3, -4, -5, -6. Son ejemplos 2, -4 y 0. En pseudocódigo se
suele utilizar la palabra reservada "entero" para este tipo de datos.

 Tipo de dato real: Son los que pueden tomar como valores a los números
racionales o irracionales. Este tipo de datos admite decimales. En matemáticas se
denomina conjunto "R" y es también un conjunto infinito de términos. En este
conjunto entre dos términos siempre existen un número infinito de términos. Para
éstos, en pseudocódigo, se usa la palabra reservada "real".

 Tipo de dato lógico: Un dato lógico es aquel que sólo puede tomar valor
verdadero o valor falso, es decir que algo se cumpla o no. Un ejemplo puede ser
una puerta de paso, que puede estar abierta (asociamos por ejemplo verdadero) o
cerrada (falso en este caso por oposición al convenio anterior). Para referenciar
este tipo de datos en pseudocódigo se usa la palabra reservada "lógico".

 Tipo de dato carácter: El conjunto de valores que representa este tipo de datos
es el formado por cualquier carácter que pueda representar el ordenador.
Normalmente se representan entre comillas, ya sean dobles o simples
(dependiendo del lenguaje). En pseudocódigo, para este tipo de datos, se utiliza la
palabra reservada "carácter".

6
M. Sc. Ing. Angélica Garzón Cuellar

 Tipo de datos cadena: Una cadena es una secuencia de caracteres y se


representa también normalmente entre comillas. Los espacios en blanco dentro
del entrecomillado también son caracteres que forman parte de la cadena, por
ejemplo "El gato" es una cadena de 7 caracteres. En pseudocódigo se usa la
palabra reservada "cadena" para este tipo de datos.

3.3. Conversiones entre tipos de Datos

Hay dos tipos de conversión, la implícita y la explícita:

 La implícita: El compilador se encarga de forma automática de adaptar las


representaciones para poder efectuar los cálculos de forma correcta.

 La Explicita: El programador escribe explícitamente en el código fuente


cómo quiere que se haga la conversión entre las representaciones.

Y estas se efectúan de la siguiente manera:


 Entero Cadena.

 Cadena Entero.

 Real Cadena.

 Cadena real.

3.4. Operadores (Aritméticos, Lógicos, Relacionales, cadena)

I. Los operadores aritméticos: Se usan para calcular un valor de dos o más


números, o cambiar el signo de un número de positivo a negativo o viceversa.

Símbolo Descripción
+ suma
— resta
* multiplicación
\ división
Mod resto de la división
Div división entera
II. Los operadores lógicos: Los operadores lógicos se usan para combinar dos
valores Booleanos y devolver un resultado verdadero, falso o nulo. Los operadores
lógicos también se denominan operadores Booleanos.
Algunos de estos operadores lógicos son:

7
M. Sc. Ing. Angélica Garzón Cuellar

Operador And: Si todas las entradas son V=1=true, entonces la salida es


verdadero, caso contrario los demás caso es falso=0=false.

E1 E2 S=E1 * E2
0 0 0
0 1 0
1 0 0
1 1 1

Operador Or: Si alguna de sus entradas es verdadero, la salida es verdadero. Si


todas sus entradas están en falso, entonces la salida es falso.

E1 E2 S=E1 v E2
0 0 0
0 1 1
1 0 1
1 1 1

Operador Not: Se utiliza para invertir o complementar la entrada en la salida,


cambiando de valor.

E1 E1
0 1
1 0

3.5. Expresiones (Aritméticas, Lógicas, Cadena)

 Expresiones Aritméticas: Se entiende por expresión aritmética a aquella donde


los operadores que intervienen en ella son numéricos, el resultado es un número y
los operadores son aritméticos. El resultado de una expresión aritmética es uno de
los elementos siguientes:

 Un valor numérico
 Un valor de fecha u hora
 Un valor de duración
 Una secuencia vacía
 Un error

 Expresiones Lógicas: Las expresiones lógicas pueden aparecer en los mandatos


COMPUTE, IF, SELECT IF, DO IF, ELSE IF, LOOP IF y END LOOP IF. Una
expresión lógica se evalúa como verdadera o falsa, o como que falta si es
indeterminada. Una expresión lógica devuelve 1 si la expresión es verdadera, 0 si

8
M. Sc. Ing. Angélica Garzón Cuellar

es falsa o falta del sistema si tiene un error. Por lo tanto, las expresiones lógicas
pueden ser cualquier expresión que produzca esta lógica de tres valores.

 Expresiones de Cadena: Es una secuencia ordenada (de longitud arbitraria,


aunque finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto
análogas a una fórmula o a una oración. En general, una cadena de caracteres es
una sucesión de caracteres (letras, números u otros signos o símbolos). Si no se
ponen restricciones al alfabeto, una cadena podrá estar formada por cualquier
combinación finita de los caracteres disponibles

3.6. Ejercicios

A. Ejercicios de la expresión aritmética

B. Ejercicios de
expresiones
lógicas:

9
M. Sc. Ing. Angélica Garzón Cuellar

C. Expresiones de cadena:

4. Representación de Algoritmos

4.1. Diagramas de Flujos


Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo
informático. Se usan ampliamente en numerosos campos para documentar, estudiar,
planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y
fáciles de comprender.
Los diagramas de flujo emplean rectángulos, óvalos, diamantes y otras numerosas figuras
para definir el tipo de paso, junto con flechas conectoras que establecen el flujo y la

10
M. Sc. Ing. Angélica Garzón Cuellar

secuencia. Pueden variar desde diagramas simples y dibujados a mano hasta diagramas
exhaustivos creados por computadora que describen múltiples pasos y rutas.
Los diagramas de flujo a veces se denominan con nombres más especializados, como
"diagrama de flujo de procesos", "mapa de procesos", "diagrama de flujo funcional",
"mapa de procesos de negocios", "notación y modelado de procesos de negocio (BPMN)"
o "diagrama de flujo de procesos (PFD)".

Ejemplo:

4.2. Pseudocódigo
El pseudocódigo es una forma de representar código, como algoritmos, funciones y otros
procesos, utilizando una combinación de lenguaje natural y elementos similares al
lenguaje de programación.
Se llama «pseudocódigo» porque no es realmente ejecutable. En cambio, es una forma
de que los humanos comprendan y planifiquen la lógica de la programación (describir los
pasos de un programa de forma que sea fácil de entender para los humanos), sin dejar de
ser lo suficientemente detallado como para convertirse rápidamente en un lenguaje de
programación específico.

Ejemplo:

11
M. Sc. Ing. Angélica Garzón Cuellar

4.3. Lenguaje de programación


Un lenguaje de programación es un lenguaje formal (o artificial, es decir, un lenguaje con
reglas gramaticales bien definidas) que le proporciona al programador la capacidad de
escribir (o programar) una serie de instrucciones o secuencias de órdenes en forma
de algoritmos con el fin de controlar el comportamiento físico o lógico de un sistema
informático, de manera que se puedan obtener diversas clases de datos o ejecutar
determinadas tareas.

12

También podría gustarte