Está en la página 1de 50

INSTITUTO TECNOLÓGICO DE DURANGO

PROGRAMA: B.1 ELABORACIÓN DE APUNTES

NOMBRE DEL PROYECTO: Recurso Electrónico de apoyo para el


maestro, Ejercicios propuestos y las aplicaciones de ellos en el
Laboratorio de computación para la asignatura de Fundamentos
de Programación.

DEPARTAMENTO: Sistemas y Computación

DOCENTE: M.C. IRMA SELENE HERNÁNDEZ


CARRILLO

Ciudad de México, 15/Febrero /2022


Apuntes de la Materia Fundamentos de Programación

Pág. 2
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Índice

Índice de Ilustraciones.......................................................................................................................4
Índice de Tablas..................................................................................................................................4
Unidad 1. Diseño Algorítmico.............................................................................................................5
1.1 Conceptos básicos...............................................................................................................5
1.2 Representación de algoritmos: gráfica y pseudocódigo.....................................................8
1.3 Diseño de algoritmos........................................................................................................11
1.4 Diseño de funciones.........................................................................................................16
Tema 2. Introducción a la Programación..........................................................................................17
2.1 Conceptos básicos..................................................................................................................17
2.2 Características del lenguaje de programación........................................................................18
2.3 Estructura básica de un programa..........................................................................................19
2.4 Elementos del lenguaje: tipos de datos, literales, constantes, variables, identificadores,
parámetros, operadores y salida de datos...................................................................................20
2.5 Traducción de un programa: compilación, enlace, ejecución y errores.................................26
3. Control de Flujo...........................................................................................................................28
3.1 Estructuras secuenciales........................................................................................................28
3.2 Estructuras selectivas: simple, doble y múltiple.....................................................................29
3.3 Estructuras iterativas: repetir mientras, hasta, desde............................................................35
Unidad 4. Organización de datos.....................................................................................................39
4.1 Arreglos............................................................................................................................39
4.2 Unidimensionales: conceptos básicos, operaciones y aplicaciones..................................39
4.3 Multidimensionales: conceptos básicos, operaciones y aplicaciones...............................43
4.4 Estructuras o registros......................................................................................................46
Unidad 5. Modularidad....................................................................................................................47
5.1 Declaración y uso de módulos..........................................................................................47
Pág. 3
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

5.2 Paso de parámetros o argumentos........................................................................................48


5.3 Implementación.....................................................................................................................49
Referencias.......................................................................................................................................52

Índice de Ilustraciones

Ilustración 1 Ejemplo de Lenguaje Ensamblador................................................................................7


Ilustración 2 Ejemplo de Diagramas de Flujo...................................................................................15
Ilustración 3 Ejemplo de un programa que utiliza funciones y las manda llamar.............................17
Ilustración 4 Ejemplo de un programa que utiliza un compilador en Lenguaje C.............................27
Ilustración 5 Ejemplo de sintaxis en el Lenguaje de Programación Java..........................................32
Ilustración 6 Multiplicación de dos matrices....................................................................................46

Índice de Tablas
Tabla 1 Símbolos de los Diagramas de flujo.......................................................................................9
Tabla 2 Los tipos de datos................................................................................................................21
Tabla 3 Operadores aritméticos.......................................................................................................24
Tabla 4 Operadores relacionales......................................................................................................25
Tabla 5.Operadores de asignación...................................................................................................25
Tabla 6.Operadores lógicos..............................................................................................................26

Pág. 4
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Unidad 1. Diseño Algorítmico.


Al iniciar la carrera de Ingeniería en Sistemas Computacionales, es de suma importancia
conocer un método específico para poder resolver problemas específicos y utilizar
algoritmos y hacer propuestas de solución.

También es importante conocer cómo funciona la memoria de la computadora para el


almacenamiento, como repaso es importante saber que la computadora usa memoria de
acceso aleatorio (RAM) para guardar información mientras está funcionando. La RAM se
encuentra en circuitos integrados o chips en el interior de la computadora. La RAM es
volátil, lo que significa que es borrada y reemplazada con nueva información tan pronto
como se necesita.

Al empezar con la programación es importante también definir los siguientes conceptos:

1.1 Conceptos básicos

Algoritmo: Es un método para resolver un problema mediante una serie de pasos


definidos precisos y finitos.

Otra definición es algoritmo es una secuencia de actividades sistemáticas que tienen un


orden lógico.

En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso
se pueda describir sin ambigüedad y sin hacer referencia a una computadora en
particular, y además tiene un límite fijo en cuanto a la cantidad de datos que se pueden
leer/escribir en un solo paso.

Lenguaje de Programación: Es el idioma que desarrolla la lógica de un programa


mediante un lenguaje de alto nivel para resolver un problema.

Programación: Es el proceso por el cual una persona desarrolla un programa valiéndose


de una herramienta que le permita escribir el código (el cual puede estar en uno o varios
lenguajes, tales como C++, Java y Python).

Programa: Software que se trata de aplicaciones y recursos que permiten desarrollar


diferentes tareas en una computadora u otros equipos tecnológicos.

Paradigma de programación: Es una propuesta tecnológica adoptada por una comunidad


de programadores y desarrolladores cuyo núcleo central es incuestionable en cuanto que
únicamente rata de resolver uno o varios problemas claramente delimitados; la resolución
de estos problemas debe suponer consecuentemente un avance.

Software: Son todos los programas y datos de la computadora ( es la parte intangible de


la pc).

Clasificación del Software:


Pág. 5
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

 Software de sistemas
 Software de aplicación

Software de sistemas: Son las instrucciones electrónicas que van a indicar a la PC que es
lo que tiene que hacer. También se puede decir que son los programas usados para
dirigir las funciones de un sistema de computación o un hardware.

Son software de sistemas: Sistemas operativos, los compiladores, los intérpretes,


ensambladores y los cargadores.

Sistema operativo: Es el programa que administra los recursos y programas de la


computadora.

Dentro de la clasificación de software de sistemas, existen programas traductores como


son: intérpretes y compiladores.

Un programa que utiliza un traductor intérprete, se identifica cuando los programas repiten
un ciclo para volver a ejecutar parte de sus instrucciones, reinterpretan la misma
instrucción cada vez que aparece. Por consiguiente, los programas interpretados se
ejecutan con mucha mayor lentitud que los programas en lenguaje máquina.

Compilador: Es un programa informático que traduce un programa escrito en un lenguaje


de programación a otro lenguaje de programación, generando un programa equivalente
que la máquina será capaz de interpretar.

Interprete: Es un traductor que realiza la operación de compilación paso a paso. Para


cada sentencia que compone el texto de entrada, se realiza una traducción, ejecuta dicha
sentencia y vuelve a iniciar el proceso con la sentencia siguiente.

La diferencia entre un compilador e intérprete es cuando el compilador primero traduce


el programa fuente, y una vez traducido y corregido sin errores, se ejecuta como último
paso. El traductor intérprete revisa y ejecuta al mismo tiempo aunque encuentre errores al
revisar.

Ensamblador: La tarea fundamental de un ensamblador es traducir un programa en


lenguaje de ensamblador al código correspondiente en lenguaje de máquina. Ver
Ilustración 1.

Pág. 6
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Ilustración 1 Ejemplo de Lenguaje Ensamblador

El software de Aplicación es aquel que hace que la computadora coopere con el usuario
en la realización de tareas típicamente humanas, tales como gestionar una contabilidad o
escribir un texto.

La diferencia entre los programas de aplicación y los de sistema estriba en que los de
sistemas ayudan al usuario para relacionarse con la computadora y hacer un uso más
cómo de la misma, mientras los de aplicación son programas que cooperan con el
usuario para la realización de las actividades.

Ejemplo de programas o software de aplicación.

 Editor de texto. (Bloc de Notas)


 Hojas de Cálculo. (MS Excel)
 Sistemas gestores de bases de datos. (MySQL)
 Programas de comunicaciones. (MSN Messenger)
 Paquetes integrados. (Ofimática: Word, Excel, PowerPoint…)
 Programas de diseño asistido por computadora. (AutoCAD)

Pág. 7
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Editor de Texto o también llamado texto plano se distinguen de los procesadores de texto
en que se usan para escribir solo texto, sin formato y sin imágenes, es decir sin
diagramación.

Ejercicio: Investigar los conceptos de Hojas de Cálculo, Sistemas gestores de bases de datos,
Programas de comunicaciones, Paquetes integrados, Programas de diseño asistido por
computadora y entregar en un documento en Word al profesor.

1.2 Representación de algoritmos: gráfica y pseudocódigo.

Para entender correctamente la representación de algoritmos hay que especificar la


metodología para la resolución de problemas.

.1 Análisis del problema o Descripción del problema (enunciado).

Se requiere primero tener una clara definición del problema donde se contemple lo que
debe hacer el problema y el resultado o solución deseada.

.3 Definición de solución (especificaciones).

Dado que se busca una solución por computadora, en este punto se precisan
especificaciones detalladas de entrada y salida.

Para poder definir bien un problema es conveniente hacer las siguientes preguntas:

¿Qué entrada se requieren (tipos de valores y cantidad)?

Ejemplo valores enteros, o valores de carácter, etc.

¿Cuál es la salida desea (tipos de salida y cantidad)?

¿Qué método produce la salida deseada?

.4 Diseño de la solución (modelado).


Es importante mencionar que en este paso se debe de desarrollar un algoritmo con una
secuencia de pasos finitos que resuelvan un problema específico.

En este paso las dos herramientas más utilizadas para diseñar algoritmos son: Los
diagramas de flujo y pseudocódigo.

Un diagrama de flujo es una representación gráfica de un algoritmo Los símbolos


utilizados han sido normalizados por el Instituto Norteamericano de Normalización (ANSI,
Pág. 8
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

por sus siglas en inglés). Y los más frecuentemente empleados son los siguientes (Ver
tabla 1).

Símbolo Nombre Función


Representa el inicio
Inicio / Fin y el final de un
proceso o del
algoritmo.
Indica el orden y
Línea de Flujo seguimiento de la
ejecución de las
operaciones.
Representa la
Entrada /Salida lectura de datos en
la entrada y la
impresión de los
datos en la salida.
Representación de
Proceso cualquier tipo de
operación.

Nos permite
Decisión analizar una
situación, con base
en los valores
de verdadero y
falso.
Tabla 1 Símbolos de los Diagramas de flujo.

Otra herramienta es el pseudocódigo o también llamado falso lenguaje es una


descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con
algunas convenciones sintácticas propias de lenguajes de programación, como
asignaciones, ciclos y condicionales. Es utilizado para describir algoritmos en libros
y publicaciones científicas, y como producto intermedio durante el desarrollo de un
algoritmo.

El pseudocódigo es una forma de describir la solución a un problema de manera que su


traducción posterior a un lenguaje de programación de alto nivel sea sencilla. Trata de
definir la solución del problema en un lenguaje intermedio entre el humano y el de
programación.

No hay una forma estándar de diseñar un pseudocódigo, depende en gran medida del
criterio del programador. A pesar de ello, es aconsejable respetar lo más rigurosamente
posible las siguientes normas de carácter general:

 Todo pseudocódigo comienza con la palabra «Inicio» y termina con la palabra


«Fin».
Pág. 9
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

 Cada instrucción se debe escribir en una línea.


 Para su descripción, se utilizan una serie de palabras reservadas: Inicio, fin, si,
entonces, si no, fin-si, mientras, escribir, leer, etc.
 Debe escribirse «identado» (tabulado o con sangría) para mostrar claramente las
dependencias de control dentro de los módulos.

EJEMPLO:
Calcular la suma y el producto de dos números.
La solución es, lo primero que se tiene que hacer es introducir los números A y B,
después sumarlos, luego multiplicarlos y, por último, presentar los resultados al usuario en
pantalla. Estas acciones se deben ejecutar en ese orden y secuencialmente, la estructura
secuencial expresa perfectamente la solución al problema.
El pseudocódigo siguiendo las reglas descritas anteriormente sería:
1. Inicio
2. Introducir A y B
3. SUMA = A + B
4. PRODUCTO = A * B
5. Mostrar SUMA, PRODUCTO
6. Fin

El diagrama de flujo del ejemplo es:

Inicio

Leer A y B

SUMA=A+B

PRODUCTO=A*B

MOSTRAR
SUMA,
PRODUCTO

FIN

Pág. 10
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

.5 Desarrollo de la solución (codificación).


Una vez que el algoritmo se introduce a un programa fuente por medio de un lenguaje de
programación (como puede ser Java, Python, C++ u otro), es preciso introducirlo en
memoria mediante el teclado y almacenarlo o guardarlo en un dispositivo de
almacenamiento secundario, ya sea disco duro, memoria USB, u otro.

El programa fuente debe ser traducido a lenguaje máquina, este proceso se realiza con el
compilador y el sistema operativo que se encarga particularmente de la compilación.

.6 Verificación y pruebas (pruebas).

La verificación de un programa es el proceso de ejecución con una amplia variedad de


datos de entrada, haciendo varias pruebas y determinar si el programa tiene errores.
Para hacer la verificación se deben introducir diferentes tipos de valores de entrada,
desde valores normales, valores extremos que comprueben el límite del programa. Una
vez encontrados los errores hay que corregirlos.

.7 Documentación (manuales).

Cuando se hacen proyectos grandes o es necesario tener el análisis de un programa,


desde documentar el diagrama de flujo y/o pseudocódigo, cuando los proyectos son muy
grandes se generan manuales de usuario con instrucciones para ejecutar el programa e
interpretar los resultados.

1.3 Diseño de algoritmos.

Haciendo referencia a la metodología para la resolución de problemas y entender


claramente la definición del problema y sus especificaciones, el siguiente paso es hacer
el diseño del algoritmo utilizando las dos herramientas anteriormente mencionadas, “El
diagrama de Flujo y el Pseudocódigo”.

Recordando la definición de algoritmo como un conjunto de pasos finitos que resuelven un


problema.
Se muestra un ejemplo sencillo de un algoritmo usando el pseudocódigo para asistir a
clases presenciales y poder comprender el concepto:

1. Inicio
2. Levantarse
3. Bañarse
4. Vestirse
5. Desayunar
6. Cepillarse los dientes
7. Salir de casa
8. Tomar el autobús
9. Llegar a la ESPE
Pág. 11
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

10. Buscar el aula


11. Ubicarse en un asiento
12. Fin.

En este ejemplo no hubo cálculos u operaciones que realizar, por eso una secuencia de
pasos solamente. En los siguientes ejemplos se mostrará el enunciado, las
especificaciones utilizando variables para almacenar los valores. Entendiendo como
variable una posición de almacenamiento de datos de la memoria de la computadora que
tiene un nombre. Al usar un nombre de variable en el programa de hecho se está
haciendo referencia al dato que se encuentra guardado ahí.

Ejemplo 2: Algoritmo para calcular el área de un cuadrado.


Especificaciones: variables de entrada “lado” y variable de salida “area”.

Pseudocódigo:
1- Inicio
2- Escribir “ Programa que calcula el área de un cuadrado”
3- Escribir “ Inserta el valor de un lado del cuadrado”
4- Leer (lado)
5- Calcular area=lado * lado
6- Escribir “ El área del cuadrado es”, area
7- Fin

Diagrama de Flujo:

Inicio

“Programa que
calcula el área de
un cuadrado”

“Inserta el valor
del lado del
cuadrado”

lado

Pág. 12
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

area=lado*lado

“El área del


cuadrado
es”,area

Fin

Nota: En ocasiones los diagramas de flujo no caben en una hoja completa, se


pueden utilizar los conectores que es un símbolo que conecta el diagrama de flujo
de una hoja hacia otra hoja con el mismo número.

Ejemplo3: Hacer un algoritmo que permita leer dos valores, determinar cuál de los dos
valores es mayor e imprimirlo.

Especificaciones:
Variables de entrada M, N.

Pseudocódigo
1. Inicio
2. Escribir “introducir un valor “
3. Leer M
4. Escribir “introducir otro valor “
5. Leer N
6. Si M>N Entonces Escribir M, “Es el mayor” De lo contrario: Escribir B, “Es el mayor”
7. Fin.
Diagrama de Flujo:

Inicio

“Introducir un
valor”

M
Pág. 13
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

“Introducir otro
valor”

SI

M>N “El mayor es “, M

No

“El mayor es “, N Fin

Ejemplo 4: Diseñe un algoritmo donde pida por teclado 4 calificaciones (Cal1, Cal2, Cal3,
Cal4), calcule la calificación promedio y escriba el resultado final.

Especificaciones:
Entrada: Leer las calificaciones individuales
Proceso: Calcular la calificación promedio
Salida: Escribir resultado con mensaje explicativo
Diagrama de Flujo:

Pág. 14
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Ilustración 2 Ejemplo de Diagramas de Flujo.

Pseudocódigo
1. Inicio
2. Leer Cal1, Cal2, Cal3, Cal4
3. Prom = (Cal1+Cal2+Cal3+Cal4)/4
4. Escribir ("Resultado final es", Prom)
5. Fin

Ejercicios para entregar al profesor:

1.- Hacer un algoritmo usando las dos herramientas, pseudocódigo y diagrama de


flujo que lea su nombre, nacionalidad, si es Mexicano, preguntar si su visa
Estadounidense está vigente, si es si, imprima puede pasar de lo contrario, imprimir
“invitar a renovar visa y no puede pasar a los EU.

2.- Hacer un algoritmo usando las dos herramientas, pseudocódigo y diagrama de


flujo que capture o lea sus datos personales, nombre, edad, semestre, dirección,
código postal, ciudad e imprimir la información.

Pág. 15
3.- Hacer un algoritmo usando las dos herramientas, pseudocódigo y diagrama de
M.C. Irma Selene Hernández Carrillo
flujo leer la edad y preguntar cual pasatiempo tiene, si el joven tiene edad es
mayor o igual a 18 y el pasatiempo “Ir al cine”, imprimir “te invito a que hagas algún
deporte“, de lo contrario si es menor de edad y tiene algún pasatiempo, imprimir
Apuntes de la Materia Fundamentos de Programación

1.4 Diseño de funciones.


Es importante recordar que en la etapa de análisis del proceso de programación se
determina que hace el programa. En la etapa de diseño se determina como hace el
programa la tarea solicitada. Los métodos más eficaces para el proceso de diseño es el
famoso refrán “divide y vencerás”. La resolución del problema complejo se puede realizar
dividiendo el problema en subproblemas. También puede ser un programa complejo y se
realiza dividiendo en subprogramas a estos les denominaremos como módulos o
funciones.

Cada subproblema es resuelto mediante un módulo (subprograma) que tiene un solo


punto de entrada y un solo punto de salida. Los módulos también se denominan
funciones y estas pueden estar fuera del programa principal y se pueden mandar llamar
cuando se requieran, ver ejemplo de la ilustración 3 siguiente.

Programa
principal
Función suma( )
suma( );
promedio( ); Función
promedio ( )

Ilustración 3 Ejemplo de un programa que utiliza funciones y las manda llamar.

Tema 2. Introducción a la Programación

Pág. 16
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

2.1 Conceptos básicos.

Definiendo que un lenguaje de programación es cualquier sistema de notación que


permite expresar programas. Donde el código máquina codifica las secuencias de
instrucciones como sucesiones de unos y ceros que siguen ciertas reglas.

Al escribir un programa en un lenguaje de programación se debe reconocer la sintaxis de


este, que significa la forma visible y correcta de los símbolos que forman el lenguaje y
las reglas para combinarlos. Suele describirse mediante una gramática.

La Semántica en la programación son las reglas que determina el significado de los


programas que constituyen la semántica de los lenguajes de programación.

La sintaxis va unida a la semántica, donde la sintaxis es la estructura o forma de


expresiones, declaraciones y unidades de programa, y la semántica es el significado de
esas expresiones, declaraciones y unidades de programa.

En la sintaxis es importante saber cómo se escribe las asignaciones de los datos, y


depende del lenguaje de programación, ejemplo a=3; en esta línea es importante
mencionar sobre el operador igual donde se asigna y toma el valor de 3 y su semántica
es saber que a la variable a se le asignó un valor 3 y al final de la mayoría de las
instrucciones llevan un punto y coma, y cada instrucción desde las sentencias de control,
tienen su sintaxis y su semántica. Entender la sintaxis es como aprender que los
nombres propios inician con mayúscula.

Investigación para entregar al profesor:


Investigue 5 ejemplos sencillos (como la suma de dos números,
calcular el promedio de 3 valores enteros) e identificar la sintaxis
de los siguientes lenguajes de programación y comentar sus
diferencias. Lenguaje de programación C++, Java.

2.2 Características del lenguaje de programación.

Las características de un lenguaje de programación varían de acuerdo al lenguaje que


utilicemos y consiste en conocer las instrucciones y el conjunto de reglas gramaticales
que realizan cada instrucción para que ejecuten tareas específicas.

Los Lenguajes de programación que se sugieren en estos apuntes son Java y C++.

Ejemplo de la estructura de un programa en Java:

public class Ejemplo {

public static void main (String args[]) {


Pág. 17
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

System.out.println (“Bienvenido a la programación Java”);

Haciendo referencia al ejemplo anterior en Java y de acuerdo a sus características del


lenguaje en su sintaxis y semántica:

La definición de la clase (class): Se utiliza para definir una nueva clase a través de la
palabra clave “class”.
La definición de la clase: Debe estar comprendida entre llaves: Apertura “{” y cierre “}”.
Método principal (main): Cada aplicación de Java debe contener el método, en este caso
public static void main (String args[])
Public: Se coloca para que pueda ejecutarse en cualquier lugar.
Static: Con esto el método principal puede ser llamado sin crear el objeto.
Void: El método principal no devuelve nada.
String: El método principal acepta un único argumento.
System.out.println: La salida de datos entre “ ”.

Ejemplo de la estructura de el Lenguaje C++:


#include <iostream.h>
int main (void)
{
char nombre[100];
cout<< “escribe tu nombre”<<endl;
cin>>nombre;
cout<< “tu nombre es ”<<nombre;
return 0;
}

Haciendo referencia al ejemplo anterior en C++ y a sus características del lenguaje en su


sintaxis y semántica:

#include <iostream.h>: Hace referencia a la biblioteca iostream.h donde están las


funciones de entrada y salida.
int main(void) : Es la función principal que en sus parámetros no ingresa ningún valor por
usar void y al final espera un resultado de la función de tipo entero.
Sus llaves que controlan el inicio y final de la función principal
char nombre[100]; Es una declaración de un arreglo de caracteres que acepta 100 valores
de tipo char.
cout y cin: Son instrucciones que indican salida y entrada de valores.

Así se puede ir analizando varios lenguajes de programación tomando en cuenta su


sintaxis y semántica.

Pág. 18
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

2.3 Estructura básica de un programa.

Las partes principales de un programa están basadas en dos bloques:


Las declaraciones de las variables que se utilizan y las instrucciones que hace el
programa.
En las instrucciones podemos diferenciar tres partes básicas como son:

La entrada de datos:
Se basa en todas las instrucciones que toman los datos de entrada desde un dispositivo
externo y los almacena en la memoria principal para que puedan ser procesados y
utilizados.

Algoritmo:

Son las instrucciones que resuelven o van desarrollando el programa.

Salida de resultados:
Conjunto de instrucciones que toman los datos finales (resultado) de la memoria principal
y los envían a los dispositivos externos en caso de ser necesario.

En el ejemplo de un lenguaje C o C++ tiene una estructura o esqueleto básico como es


la función main, las llaves y punto y coma.
En el Lenguaje Java tiene una estructura de las palabras class, sus llaves y su public
static void main(String args[]), como función principal, agrupada entre llaves como se
mostró en los ejemplos en el punto 2.2 de estos apuntes.

2.4 Elementos del lenguaje: tipos de datos, literales, constantes, variables,


identificadores, parámetros, operadores y salida de datos.

Tipo de dato:

En programación, un tipo de dato informático o simplemente tipo es un atributo de


los datos que indica a la computadora (y/o al programador) sobre la clase de datos que se
va a trabajar.

Otro concepto acerca de un tipo de datos es la propiedad de un valor que determina su


dominio (qué valores puede tomar), qué operaciones se le pueden aplicar y cómo es
representado internamente por la computadora. Todos los valores que aparecen en un
programa tienen un tipo de dato los cuales pueden ser:

Pág. 19
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Palabra
Tip Tipo de dato Acepta Ejemplo en lenguaje C o Java
reservada

Solo
Entero int números sin int numero = 1;
fracciones.

Números
Real float con float numero = 15.75;
fracciones

Solo una
Carácter char letra o char letra = ‘m’;
carácter.

char cadena[10] = “Hola Mundo”;


Cadena de Conjunto de
*char o String String cade=“Hola nueva normalidad”;
carácter caracteres.

Lógicos Boolean true o false Boolean ban=true;

Tabla 2 Los tipos de datos

1. Tipo de dato lógico. El tipo de dato lógico o booleano es aquel que puede
representar valores de lógica binaria, esto es, valores que representen falso o
verdadero.

2. Tipo de dato String, este tipo de dato si es común que se le mencione por su
nombre en español que es cadenas o cadena de texto. String o cadena es un tipo
de dato que nos permite guardar una determinada cantidad de caracteres, no
decimos letras ya que no solamente podemos guardar las letras a-z o A-Z.
También almacena cualquier signo tipográfico “$@”, números pero no tienen
valor.

Pág. 20
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

3. Un tipo de dato entero es un tipo de dato que puede representar un subconjunto


finito de los números enteros.

Ejemplo:
edad=23

4. Un tipo de dato tipo float, sigue dentro de los tipos de datos de números, este tipo
de números son los que permiten tener números fraccionados o podemos decir
que son números con decimales, por lo tanto son números que tienen mayor
precisión.

Ejemplo:
K=10.5
salario=23000.5

Variables
Una variable es una posición de almacenamiento de datos de la memoria de la
computadora que tiene un nombre. Al usar un nombre de variable en el programa de
hecho se está haciendo referencia a l dato que se encuentra guardado ahí.

Nombres de variable
Se debe saber cómo crear nombres de variables, para ello se debe ajustar a las
siguientes reglas:

1. No pueden contener espacios.


2. El nombre puede contener letras, dígitos y el carácter de subrayado (_).
3. Distingue entre mayúsculas y minúsculas.
4. No pueden contener acentos, puntos o cualquier signo gramatical.
5. El primer carácter del nombre debe ser una letra.
6. No pueden comenzar con un dígito ni contener la letra “ñ”.
7. Las palabras reservadas del lenguaje de programación a utilizar, no deben ser
utilizadas como variables.

Ejemplos de variables:
a = 5;
Edad=30;

Pág. 21
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

resultado = 75.35;
nombre = “Fundamentos de Programación”;
a=8;

Ámbito de una variable


El ámbito de una variable es importante mencionar en que parte irá en el programa y si se
define la variable al inicio del programa, se podrá utilizar en cualquier parte del documento
lo que se define como variable global. O si solo se podrá utilizar dentro de una función
determinada, se define como variable local. La sintaxis para declarar una variable es igual
en ambos casos, la única diferencia es el lugar donde las declaramos.

Identificador

Un identificador se reconoce como un nombre, que define el programador, que sirve para
denotar ciertos elementos de un programa. Estos elementos pueden ser las denominadas
variables, constantes y funciones.

Un identificador también es equivalente a una variable, esto quiere decir que se pueden
utilizar variables que sean nombres descriptivos que se relacionen con los valores que se
almacenen, como ejemplo: nombre, edad, sexo, promedio, etc.

Literal

Una literal es un valor constante formado por una secuencia de caracteres o valores
numéricos.

Ejemplos

 123 //literal valor entero


 123.456 //literal valor fraccionario

Ej. 'a', '%', '7'

 Literales de cadena

Una cadena es una combinación de caracteres. Las cadenas en Java son instancias de la
clase String, por ello cuentan con métodos que permiten combinar, probar y modificar
cadenas con facilidad. Las literales de cadena se representan por una secuencia de
caracteres entre comillas dobles.

Ej. "hola", "cadena123", "12345"


Pág. 22
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Constante

Una constante es un valor que no puede ser alterado/modificado durante la ejecución de


un programa, únicamente puede ser leído.

Ejemplo:
PI = 3.1416

IVA=0.16

RETENCION=0.10

Parámetros:

Como se mencionaron anteriormente en el punto 1.4 de diseño de Funciones, estos


representan una lista de variables cuyos valores son pasados a la función para ser
usados por éste y suelen ser opcionales.

Operadores aritméticos.

OPERADOR DESCRIPCIÓN Ejemplo

+ Realiza Adición entre los 1+3=4


operandos.

- Realiza Substracción entre los 6-3=3


operandos.

* Realiza Multiplicación entre 11*2 = 22


los operandos.

/ Realiza División entre los 10/ 2 = 2


operandos.

% Realiza un módulo entre los 9%2=1


operandos.

Tabla 3 Operadores aritméticos

Pág. 23
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Operadores relacionales.

> Devuelve True si el operador de la 12 > 3 devuelve True


izquierda es mayor que el de la
derecha.

< Devuelve True si el operador de la 12 < 3 devuelve False


derecha es mayor que el de la
izquierda.

== Devuelve True si ambos operandos 12 == 3 devuelve False


son iguales

>= Devuelve True si el operador de la 12 >= 3 devuelve True


izquierda es mayor o igual que el
operador de la derecha.

<= Devuelve True si el operador de la 12 <= 3 devuelve False


derecha es mayor o igual que el
operador de la izquierda.

Tabla 4 Operadores relacionales

Operadores de asignación.

OPERADOR DESCRIPCIÓN

= a = 5. El valor 5 es asignado a la variable a

+= a += 5 es equivalente a a = a + 5

-= a -= 5 es equivalente a a = a - 5

*= a *= 3 es equivalente a a = a * 3

Pág. 24
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

/= a /= 3 es equivalente a a = a / 3

%= a %= 3 es equivalente a a = a % 3

Tabla 5.Operadores de asignación.

Operadores lógicos.

OPERADOR DESCRIPCIÓN USO

And o && Devuelve True si ambos operandos a and b


son True.

Or o || Devuelve True si alguno de los a or b


operandos es True.

Not o ! Devuelve 0 si el valor es 1, o not a


devuelve 1 si el valor es 0.
!a
Si a vale 1 el
resultado es 0.

Tabla 6.Operadores lógicos.

2.5 Traducción de un programa: compilación, enlace, ejecución y errores.

Un compilador es un programa que traduce un programa escrito en un lenguaje de programación o


también llamado código fuente a otro lenguaje de programación, generando un programa
equivalente a que la máquina pueda ser capaz de interpretar. Este lenguaje llamado lenguaje
máquina o código objeto, que también puede ser un código intermedio, este proceso de traducción
se traduce como compilación, ver la Ilustración 4.

Pág. 25
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Ilustración 4 Ejemplo de un programa que utiliza un compilador en Lenguaje C.

La forma de realizar su trabajo el compilador de C como ejemplo, es pasar el programa por el


preprocesador. Este se encarga de interpretar cada una de las directivas que aparecen en el
programa

Enlace

La siguiente etapa de compilación es el enlace con las funciones presentes en las librerias de
funciones. Si nuestro programa utiliza solo funciones ANSI, no es necesario indicarle al compilador en
cuales librerias o directivas están esas funciones, las directivas son todas aquellas líneas que
comienzan con el símbolo # por ejemplo: la directiva #include<math.h>, ésta tiene muchas
funciones matemáticas que pueden ser utilizadas, pero si se utiliza funciones definidas en una librería
propia o que no sea estándar, se debe indicar al compilador mediante algún parámetro.

Ejecución:

Después de la compilación y enlace, se genera un archivo ejecutable que es un archivo binario cuyo
contenido se interpreta por la computadora como un programa. Este archivo contiene las
instrucciones en código máquina de un procesador pero también puede contener bytecode que
requiere un intérprete para ejecutarlo.

Ejemplo en C++:

Escribe el código fuente en un editor de texto con el nombre ejemplo.cpp

Al compilarlo se genera el archivo ejemplo.obj y el archivo ejemplo.exe.

Se ejecuta el archivo ejemplo.exe

Ejemplo en Java:

Pág. 26
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Escribe el código fuente en un editor de texto con el nombre ejemplo2.java

Al compilarlo se genera el archivo ejemplo2.class

Se ejecuta el archivo ejemplo2.class en el programa o se puede utilizar en un applet.

Errores:

Cuando se ejecuta un programa se pueden producir tres tipos de errores:

 Errores de compilación: Se producen normalmente por un uso incorrecto de las reglas del
lenguaje de programación y suelen ser errores de sintaxis. Si existe un error de sintaxis, la
computadora ni pue comprender la instrucción, no se obtendrá el programa objeto y el compilador
imprimirá una lista de todos los errores encontrados durante la compilación.

El compilador es capaz de detectar algunos errores que pueden cometerse en el desarrollo de un


programa. Los errores detectados por el compilador son de dos tipos los errores de sintaxis y las
advertencias.

Los errores deben corregirse, donde el compilador enumera los errores encontrados y se detiene la
compilación. Y se debe de corregir hasta que ya no existan errores. Las advertencias también
conocidas como warnings, no afectan al programa para su ejecución pero si el programa no está al
100% correcto si existe este tipo de advertencias.

 Errores de ejecución: Estos errores se producen por instrucciones que la computadora


pueden comprender pero no ejecutar. Ejemplos: división entre cero y raíces cuadradas de números
negativos. En estos casos se detiene la ejeción del programa y se imprime un mensaje de error.

 Errores de lógica. Se producen en la lógica del programa y la fuente del error suele ser el
diseño del algoritmo. Estos errores son los más dificiles de detectar, ya que el programa puede
funcionar y no producir errores de compilación ni de ejecución, y solo pueden advertir el error por la
obtención de resultados incorrectos. En este caso se debe volve a la fase de diseño del algoritmno,
modificar el algoritmo, cambiar el programa fuente y compilar y ejecutar una vez mas.

3. Control de Flujo

Pág. 27
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

3.1 Estructuras secuenciales.


Una estructura de programa será secuencial si las instrucciones se ejecutan una tras otra, a modo de
secuencia lineal, es decir que una instrucción no se ejecuta hasta que finaliza la anterior, y debe
llevar un orden de inicio al final del el programa. Esta estructura es la más sencilla de todas,
simplemente indica al procesador que debe ejecutar de forma consecutiva las acciones (que pueden
ser, a su vez, otras estructuras de control).

Ejemplo en el Lenguaje C++


#include <iostream.h>

int main()
{
int a, b, suma;
cout<<"Introduce el primer número: ";
cin>>a;
cout<<"Introduce el segundo número: ";
cin>>b;
suma=a+b;
cout<<"La suma es \n\n"<< suma;
return 0;
}
Se van ejecutando línea por línea siguiendo el orden de arriba hacia abajo, siguiendo una
secuencia de las instrucciones.

3.2 Estructuras selectivas: simple, doble y múltiple.

Estructura selectiva simple “Si- Entonces “


Esta estructura depende del valor de una condición lógica, y la instrucción “Entonces” debe aparecer
siempre. En el caso de que la condición es falsa no se ejecuta ninguna instrucción y la ejecución del
programa continúa con la instrucción siguiente.
Ejemplo de la sintaxis de la estructura o cláusula:
Si < condición-verdadera> Entonces
<Instrucciones>
Ejemplo:
Si <nacionalidad=”Mexicana”> Entonces
<Mostrar “Puedes obtener una beca por ser mexicano para estudiar”>
Utilizando un lenguaje de programación, como puede ser Java, la sintaxis seria de la siguiente
manera.
if (expresión-booleana ==verdadera)

Pág. 28
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Sentencia(s);

Ejemplo de sintaxis en el Lenguaje de Programación Java.


if(edad>=18)
System.out.println("Bienvenido a la mayoría de edad");
Es importante mencionar que si maneja solo una instrucción al cumplir la condición o no se cumpla no
es necesario usar llaves, de lo contrario si utiliza más de una instrucción cuando se cumpla la
condición debe poner las llaves para agrupar las instrucciones.

Estructura selectiva doble “Si- Entonces “ - “ De lo contrario”


Esta estructura depende del valor de una condición lógica. Al ejecutarse esta instrucción, se evalúa la
condición y se ejecutan las instrucciones que correspondan: las instrucciones que le siguen al
Entonces si la condición es verdadera, o las instrucciones que le siguen al De lo contrario, si la
condición es falsa. La condición debe ser una expresión lógica, que al ser evaluada retorna un valor
Verdadero o Falso.
Con la utilización de esta sentencia nunca se realizarán ambos bloques de código.
La instrucción “Entonces” debe aparecer siempre, pero la instrucción “De lo contrario” puede no
estar. En ese caso, si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del
programa continúa con la instrucción siguiente.
Ejemplo de la sintaxis de la estructura o cláusula:
Si < condición-verdadera> Entonces
<Instrucciones>
De lo contrario
<Instrucciones>
Ejemplo:
Si <edad menor 18> Entonces
<Mostrar “ No tienes derecho a votar”>
De lo contrario
<Mostrar “ Puedes votar”>
Utilizando un lenguaje de programación, como puede ser Java, la sintaxis seria de la
siguiente manera.
if (expresion-booleana) // Aquí no debe ir el punto y coma

Pág. 29
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Sentencia(s);

[else]

Sentencia(s);

. Ejemplo de sintaxis en el Lenguaje de Programación Java.


if(edad<=18)
System.out.println("No puedes votar");
else
System.out.println("Si puedes votar");

Ejercicios para entregar al profesor:


1.- Hacer un programa que lea un numero entero por teclado e imprima si es par o
impar.
2.-Capture el estado civil de una persona (estos solo pueden ser soltero o
casado) imprimir el resultado.
3.- Capture la contraseña de un sistema, esta contraseña debe ser la correcta a la
primera sin dar más oportunidades, imprimir correcta o incorrecta contraseña.
4.- Escriba un programa que lea por teclado tres números enteros e imprima cual
es el menor.

Estructura selectiva múltiple


Esta estructura permite ejecutar opcionalmente varias acciones posibles, dependiendo del valor
almacenado en una variable de tipo numérico, carácter o cadena (dependiendo de lo que permita el
lenguaje de Programación). Al ejecutarse, se evalúa el contenido de la variable y se ejecuta la
secuencia de instrucciones asociada con dicho valor.
Cada opción puede tener una o varias secuencias de instrucciones. Opcionalmente, se puede
agregar una opción final, denominada De Otro Modo o default, cuya secuencia de instrucciones
asociada se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las
opciones anteriores.

Pág. 30
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Ilustración 5 Ejemplo de sintaxis en el Lenguaje de Programación Java.

Sintaxis de un switch en Java o C++:

switch (expresión){

case constante1:
sentencia(s);
break;
case constante2:
sentencia(s);

Pág. 31
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

break;
case constante3:
sentencia(s);
break;
case constanteN:
sentencia(s);
break;
[default:]
sentencia(s);
}

El valor de la expresión se compara con cada una de las constantes de la sentencia case, si coincide
alguno, se ejecuta el código que le sigue, y cuando ejecuta break sale de este bloque hasta salir del
switch Si se olvida poner el break, ejecutara la opción encontrada y las siguientes en forma
secuencial. Si ninguno coincide se realiza el bloque default (opcional), si no lo hay no se ejecuta
nada.
En el caso que varias sentencias case realicen la misma ejecución se pueden agrupar, utilizando una
sola sentencia break. Evitamos de este modo duplicar líneas de código. La sintaxis es la siguiente:
Sintaxis:
switch (expresión){
case constante1:
case constante5:
sentencia(s);
break;
case constante3:
sentencia(s);
break;
[default:]
sentencia(s);
}
La sentencia break lo que hace es abandonar directamente el bucle dándolo por
terminado.

Pág. 32
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Ejemplo:
int semestreo=3;
switch(semestre) {
case 1:
System.out.println("Primer semestre");
break;
case 2:
System.out.println("Segundo semestre");
break;
case 3:
System.out.println("Tercer semestre");
break;
case 4:
System.out.println("Cuarto semestre");
break;
default:
System.out.println("Semestre Inválido");
break;
}
Imprimirá “Tercer semestre”

Ejercicios para entregar al profesor:

 Desarrolle un programa que seleccione la estación favorita del usuario y se


muestre el mensaje alusivo a la misma.
 Desarrolle un programa que lea un número entero entre (1 y 7) e imprima el
día de la semana según el número que escogió.
 Desarrolle un programa que lea un número entero entre (1 y 12) e imprima el
mes del año según el número que escogió.
 Hacer un algoritmo y su programa correspondiente que implemente la
estructura de opción múltiple que escriba un mensaje en cada caso.
Se debe leer el nombre del trabajador, sueldo, tipo de trabajador (1. Base, 2.- Interino,
3. Eventual 4.- foráneo), si su sueldo es mayor a 12000, descontarle el 15% de
impuestos, imprimir resultados Nombre, sueldo y tipo de trabajador.

Pág. 33
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

3.3 Estructuras iterativas: repetir mientras, hasta, desde.

Las estructuras iterativas tiene el objetivo de repetir un bloque de instrucciones varias veces,
dependiendo de la manera que se quiera utilizar, estas son repetir, mientras, hasta desde, conocidas
en los lenguajes de programación actuales como do – while, while y for.
Estructura repetitiva mientras (while): Permite la ejecución repetida de una instrucción o de un
bloque de instrucciones en tanto que la condición sea verdadera, estas instrucciones se ejecutan
repetidamente el mismo bloque de código hasta que se cumpla una condición de terminación. Hay
cuatro partes en todos los bucles. Inicialización, cuerpo, iteración y condición.
Sintaxis
[Inicialización;]

mientras(condición[es]=verdadera)

Cuerpo;

[Iteración;]

Ejemplo: Pedir un número al usuario hasta que teclee 99 o mayor a este.


int num=0;
while(num <99)
{ cout<<” Numero”;
cin>> num;
}

Si al momento de la ejecución se le da un número menor 99 estará pidiendo un número, si le da un


valor 99 o mayor, saldrá del bucle.
Estructura repetitiva repetir (do-while): Se ejecuta el cuerpo del bucle mínimo una vez, porque la
evaluación de la condición verdadera se realiza al final del bucle, en el tipo de bucle anterior es
posible que no se ejecute ni una sola vez el contenido de este.
Sintaxis:
[Inicialización;]
Pág. 34
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

do{
Instrucción 1;
Instrucción 2;
Instrucción 3;
}while(condición=verdadera);
Ejemplo: Obtiene números hasta que el número es mayor que 99
Int num;
do{
cout<<”Ingresa un número”;
cin>>num;
}while(num<=99);

Resolver los siguientes ejercicios:


Escriba un pequeño programa usando la estructura while para contar de 1 a 100 en
incrementos de 3.
Escriba un pequeño programa usando la estructura do-while para contar de 1 a 100
en incrementos de 2.
Cuale es la diferencia entre el enunciado while y el enunciado do-while.
Escriba un pequeño programa que le permita al usuario ingresar hasta 10 valores
enteros.
Escriba un programa que lea la contraseña con el valor de “nuevo345”, permite solo
3 intentos.

Estructura repetitiva para (for): Esta estructura ejecuta un bloque de uno o más enunciados una
determinada cantidad de veces. Normalmente la condición para terminar es de tipo numérico. La
iteración puede ser cualquier expresión matemática valida.
Ejemplo de un algoritmo utilizando para sin utilizar un lenguaje de programación.
Algoritmo Para_hasta
Pág. 35
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

//imprimir el nombre del empleado, el sueldo y su turno, ejecutarlo 5 veces.


Definir x como entero;
Definir nombre,turno como caracter;
Definir sueldo como real;
Para x<-1 Hasta 5
Escribir "nombre del empleado";
leer nombre;
Escribir "turno [matutino/vespertino]";
leer turno;
Escribir "sueldo del empleado";
leer sueldo;
Escribir "nombre", nombre,"turno", turno, "sueldo", sueldo;
Fin Para
FinAlgoritmo

En este ejemplo se puede ejecutar en un programa llamado PseInt que se puede recomendar para
utilizar los algoritmos.
Utilizando un programa con un Lenguaje de programación como C ++, Java o PHP, la sintaxis sería
diferente al ejemplo anterior del algoritmo.

for (inicio; condición; incremento)


{
sentencia(S);
}
En caso de ser una sola sentencia, las llaves son opcionales.
La expresión inicio es evaluada. Es por lo general un enunciado de asignación que pone una
variable o un valor determinado.
La expresión condición es evaluada. La condición es una expresión relacional y si la condición se
evalúa y es falsa o cero, el enunciado for termina, y la ejecución pasa al primer enunciado que se
encuentra a continuación del enunciado del for. Si la condición es verdadera, se ejecuta los
enunciados o instrucciones que se encuentran dentro del for.
La expresión incremento es evaluada y la ejecución y la ejecución regresa a la expresión de
condición.
Ejemplo de un programa utilizando el lenguaje C++ y la estructura for:
#include<iostream.h>
int cont;
int main ( )
{
//Imprime los números del 1 al 20

Pág. 36
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

for (count=1; count<=20; count ++)

cout<<”numero”<<count<<endl;
return(0);
}

Dentro de estas estructuras repetitivas se pueden incluir las sentencias de ruptura ya que van muy
ligadas a los bucles. Estas sentencias de ruptura son continue y break (anteriormente ya se
mencionó en la sentencia de control switch).
La sentencia continue lo que hace es ignorar las sentencias que tiene el bucle y saltar directamente
a la condición para ver si sigue siendo verdadera, si es así, sigue dentro del bucle, en caso contrario,
saldría directamente del bucle.
Ejemplo en C++:
int cont=1;
while(cont<=10)
{
cout<<cont;
cont++;
if(cont==5) // aquí no se imprime el número 5
continue;
}
}

Ejercicios propuestos para resolver y entregar al profesor utilizando las estructuras


repetitivas.

1. Escribir un programa en algún lenguaje de programación que imprima por


pantalla los cuadrados de los 10 primeros números naturales.
2. Escribir un programa en algún lenguaje de programación que multiplique los
10 primeros número naturales (1*2*3*4*5…).
3. Escribir un programa en algún lenguaje de programación que sume los
cuadrados de los diez primeros números naturales, mostrando el resultado en
pantalla.
4. Hacer un programa en algún lenguaje de programación que imprima un menú
1.- área de un cuadrado
2.- Área de un círculo
3.- Área de un triangulo
4.- área del rectángulo
5.- Salir

Escoger una opción, leer los datos necesarios e imprimir el área correspondiente.
Salir cuando teclee 5.

Pág. 37
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Unidad 4. Organización de datos


4.1 Arreglos
Definición: Se define como una estructura de datos con varias posiciones donde se pueden
almacenar valores de un mismo tipo.
Existen tres clasificaciones de arreglos
 Los arreglos de una dimensión.
 Los arreglos de dos dimensiones
 Los arreglos multidimensionales.

4.2 Unidimensionales: conceptos básicos, operaciones y aplicaciones.

Los arreglos de una dimensión también llamados Vectores.


¿Qué es un vector? Retomando la definición de un arreglo, el vector es como una estructura con
varias posiciones donde se pueden almacenar valores de un mismo tipo y se pueden definir múltiples
posiciones ya sea de renglones y columnas. Por ejemplo, se tiene un vector de tipos de datos enteros
con 5 posiciones o un vector de cadena con 10 posiciones. El término de una dimensión, hace
referencia a tener solo una dimensión donde solo existe un índice que controla los valores que estén
en el vector.

Ejemplo: Arreglo de una dimensión:


Nombre del arreglo: Datos con un total de 4 posiciones, partiendo de la posición 0. Este arreglo está
en forma de columna.

Índice
0 2
1 5
2 9
3 10

En este ejemplo con valores de tipo entero, cada elemento es controlado por un índice:
Datos [0]=2; // El índice es el valor cero o la posición en el arreglo.
Datos [1]=5; // El índice es el valor uno o la posición en el arreglo.
Datos [2]=9; // El índice es el valor dos o la posición en el arreglo.
Datos [3]=10; // El índice es el valor tres o la posición en el arreglo.
Pág. 38
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Nombre del arreglo: Dato2 con un total de 4 posiciones, partiendo de la posición 0. Este
arreglo está en forma de renglón.

Índice 0 1 2 3

2 5 9 10

Datos2[0]=2; // El índice es el valor cero o la posición en el arreglo.


Datos2[1]=5; // El índice es el valor uno o la posición en el arreglo.
Datos2[2]=9; // El índice es el valor dos o la posición en el arreglo.
Datos2[3]=10; // El índice es el valor tres o la posición en el arreglo.
Otro ejemplo: Arreglo de una dimensión:
Nombre del arreglo: Nombres con un total de 4 posiciones, partiendo de la posición 0.
0 “Carlos”
1 “Daniel”
2 “Ana”
3 “Luisa”

Para comprender mejor el almacenamiento de la información en un arreglo:


En el ejemplo anterior donde el arreglo se denomina Nombres con un total de 4 elementos de tipo
cadena o String.
Nombres[0] Nombres[1] Nombres[2] Nombres[3]

Carlos Daniel Ana Luisa


Cada elemento que hay en el arreglo es una variable que puede cambiar o cambiar el dato que está
adentro del vector.
Para declarar un arreglo o vector en Java será de la siguiente manera:
Tipo_de_ dato nombre_arreglo [ ]= new Tipo_de_dato[tamaño];
Al declarar los espacios del arreglo están vacíos, para ser llenados con algun valor.
Ejemplo:
int vector[]=new int[5];
float vector2[]=new float[8];

Pág. 39
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Declarar un vector con valores predefinidos o inicializados:


int v3[]={5,6,8,9,2};

Ejercicio para resolver en Java:


public class arreglo{
public static void main (String args[])
{
Int vector[]= new int[5];
String nombres[]={“Karla”,”Pedro”, “Maria”};
vector[0]=5; vector[1]=35; vector[2]=16; vector[3]=4; vector[4]=7;
System.out.println(“Dato en la posición 2=”+String.valueOf(vector[1]));
System.out.println(“Dato en la posición 2=”+nombres[1]);
}}
Como se observa en el código anterior, se declara un vector de enteros denominado vector y otro de
tipo cadena o String llamado nombres. El primero tiene 5 posiciones y el segundo solo 3.
Posteriormente, tanto al vector de nombres como el de enteros se les asigna valores iniciales.
Finalmente, se despliega el contenido de la posición de ambos vectores, produciendo la salida, 35
del primer vector y Pedro del segundo vector.
Los arreglos y el ciclo for
Un arreglo se procesa generalmente usando el ciclo for.
Ejemplo:
int b[]= new int[5];
int i;
int m=3;
for(i=0; i<5; i++)
{ b[i]=m;
m+=3;
}

Ejercicio para entregar al profesor:


1.-Desarrolle un programa que capture 10 calificaciones de 10 alumnos e imprima
el nombre del alumno y su calificación, utilizando un vector para los nombres de
alumnos y otro para las calificaciones. Pág. 40
M.C. Irma Selene Hernández Carrillo
2.- Desarrolle un programa que capture 5 productos con sus descripciones,
precio y cantidad que se guardarán en una tienda de abarrotes, utilizando un
vector para la descripción del producto, otro para precio y otro para la cantidad.
Apuntes de la Materia Fundamentos de Programación

4.3 Multidimensionales: conceptos básicos, operaciones y aplicaciones.

A partir de un arreglo unidimensional o vector, se pueden construir estructuras más complejas con
las características básicas del mismo arreglo, por ejemplo lo que se conoce como arreglos
multidimensionales se encuentra la matriz, que es un caso particular de vector de vectores, es decir,
son datos del mismo tipo pero que se tienen que ser identificados por 2 índices o direcciones que
visualmente se les llama fija y columna, pero cada una representa diferentes aspectos de datos por
ejemplo, en una lista de calificaciones cada dato es una calificación pero cada renglón
correspondería a un alumno diferente y cada columna a una evaluación parcial.

Arreglo de dos dimensiones o Matriz:


Una matriz se puede también definir como una colección de variables del mismo tipo que tiene un
nombre común. A un elemento específico de un matriz se accede mediante sus índices (índice de
control de renglón e índice de control de columna). Todos los arreglos tienen como primer índice el
valor 0.
Ejemplo de una matriz llamada valores utilizando 4 filas o renglones y 2 columnas

39 67
56 78
4 8
2 100

valores[0][0] valores[0][1] valores[1][0] valores[1][1] valores[2][0] valores[2][1] valores[3][0] valores[3][1]

39 67 56 78 4 8 2 100

El almacenamiento de los arreglos se hace en forma continua en las localidades de


memoria y ligada.

Mostrando una matriz de 5 renglones y 4 columnas con sus respectivos índices de


renglón y columna:

Pág. 41
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Ren 0
Col 0 Col 1 Col 2 Ren 1 Col 3

0,0 01 0,2 0,3 Ren 2


1,0 1,1 1,2 1,3
Ren 3
2,0 2,1 2,2 2,3
Ren 4
3,0 3,1 3,2 3,3
4,0 4,1 4,2 4,3

En el ejemplo de la matriz de 5 renglones y 4 columnas, el tamaño del arreglo es de 20


elementos.
Para declarar un arreglo o matriz en Java será de la siguiente manera:
Tipo_de_ dato nombre_arreglo [ ][ ]= new Tipo_de_dato[total_ren][total_col];
Al declarar los espacios del arreglo están vacíos, para ser llenados con algún valor.
Ejemplo:
int matriz[][]=new int[5][4];
float matriz2[]=new float[3][3];

Declarar un matriz con valores predefinidos o inicializados:


Int matriz3[[]]={ {5,6,8,9,2},{1,7,4,3,0}};
Esta matriz de 2 renglones con 5 columnas, está declarado con valores ya inicializados.
Un arreglo se procesa generalmente usando el ciclo for.
Realizar el siguiente ejercicio de una matriz que captura 9 nombres almacenados en una
matriz de 3 por 3 y después serán impresos, se utilizan los ciclos for para control de
renglón y columna.
import java.util.Scanner; //librería para leer valores del teclado en Java
public class matriz3 {
public static void main(String[] args) {
Scanner ob=new Scanner(System.in); // se declara un objeto para leer los valores
String mat[][]=new String [3][3];//arreglo de 3 filas por 3 columnas
for (int x=0;x<3;x++)
{
Pág. 42
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

for(int y=0;y<3;y++)
{
System.out.println("Ingresa el nombre del alumno");
mat[x][y]=ob.nextLine(); // se almacena en el arreglo los nombres
}
}
System.out.println("\n\n");

String valor;
for (int x=0;x<3;x++)
{ for(int y=0;y<3;y++)
{
valor=String.format("%10s",mat[x][y]); //se asigna a la variable valor el
nombre //del alumno con un espacio de 10 caracteres para su impresión.
System.out.print(valor);
}
System.out.println("");//saltar al siguiente renglón
}
} // fin del main
}// cierre de la clase

Ejercicios para entregar al profesor:


Desarrolle un programa que capture los datos de 2 matrices y realice la suma de las dos
matrices e imprimir los resultados de la siguiente manera
Matriz A + matriz B = Matriz C
6 1 1 4 2 5 10 3 6
3 3 2 2 1 9 5 4 11

Desarrolle un programa que capture los datos de dos matrices y realice la multiplicación
de ambas matrices e imprimir el resultado, ver la siguiente ilustración.

Pág. 43
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Ilustración 6 Multiplicación de dos matrices

4.4 Estructuras o registros

Una estructura es una colección de una o más variables, agrupadas bajo un solo nombre
para facilitar su manejo. Las variables en la estructura, a diferencia de las que se
encuentran en arreglos pueden ser de diferentes tipos de variables.
En el lenguaje C es un claro ejemplo para el uso de las estructuras:
La palabra clave struct es usada para la declaración de las estructuras.

Sintaxis:
struct nombre {
//miembros de la estructura
……
} variable;

Aquí se puede declarar la variable que utilice la estructura o se pude hacer más adelante.

Sintaxis:
struct nombre {
//miembros de la estructura
};
// Declarar la variable fuera de la estructura
struct nombre variable;

Ejemplo:
Declarar una estructura para crear una venta

struct venta{
char cliente[20];
char concepto[20];
float importe;
}miventa;

Para asignarle valores


miventa.cliente=”Juan Perez”;
miventa.concepto=”escritorio”;
miventa.importe=2000.00;

Pág. 44
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Unidad 5. Modularidad
5.1 Declaración y uso de módulos.

Los módulos o subprogramas o también conocidos más actualmente como funciones se definen
como un procedimiento que cuando se ejecuta, el módulo o la función pueden devolver un
resultado o un valor específico o no.

Existen dos tipos de funciones las estándar o proporcionadas por el lenguaje de Programación de
alto nivel y definidas por el usuario, las cuales el programador tiene un objetivo al ejecutar una
función, como puede ser una suma, o algún cálculo específico.

Declaración de una función:


Consta de una cabecera, la cual depende del lenguaje de programación que se esté manejando,
después se declara el cuerpo o la acción de la función.

Invocación de las funciones:


Una función después de declararse, en el programa o en otra función, esta puede ser llamada.

Es importante mencionar que en las funciones se pueden utilizan parámetros para ingresar valores,
o también puede no llevar parámetros, con un parámetro o varios parámetros.
Sintaxis de una función en algunos lenguajes de programación como Java, C, Php.

tipo_de_dato_retorno nombre_funcion ([argumentos])


{
bloque_código;
}

Tipo de dato de retorno:


El tipo retorno es el tipo de valor devuelto por la función, y puede ser usado en cualquier
parte del programa.

Pág. 45
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Las funciones sólo pueden devolver un valor, ya sea un tipo de dato básico, como puede ser un
número entero o una cadena o valor booleano.
Nombre de la función:
Es el nombre que le damos o como llamamos a la función y no debe ser una palabra reservada por
el lenguaje.
Argumentos o parámetros de una función:
Los argumentos de una función, también llamados parámetros, representan una lista de variables
cuyos valores son transportados a la función para ser usados por esta y suelen ser opcionales.
Estos parámetros hacen un paso de información a una función. Cuando se realiza la llamada hay que
indicar entre los paréntesis los valores que se van a enviar. Estos valores son recogidos por variables
locales que son declaradas dentro de los paréntesis.

El utilizar funciones, evita duplicar líneas, agrupamos el código y nos hace más sencillo la
modificación y detección de errores, se pueden ir cambiando los valores.

Ejemplo de una función creada por el usuario llamada suma, usando la sintaxis anterior. (La
explicación estará con un comentario con “//” a lado derecho de la línea que no afecta el programa).

int suma(int a, int b) //cabecera de la función que regresa un valor int que es un valor
//entero, la función se llama suma y tiene dos parámetros que entran con la variable a y b
{ //Abrir una llave para agrupar el cuerpo de la función.
int temporal=0; // variable temporal que se inicializa en 0 para almacenar la suma.
temporal=a+b; //se hace la operación de la suma y se almacena en temporal
return (temporal); //Utiliza la palabra reservada return que indica el valor que va a
regresar.
} //Cerrar con la llave para definir el término de la función.

5.2 Paso de parámetros o argumentos.


Ejemplo:

public class ejemplo{

float promedio( int a, int b)

{ float pro=0.0F;

pro=(a+b)/2;
Pág. 46
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

return (pro);

public static void main (String args[]) {

int a=6, b=8;

promedio(a,b); // invocamos la función promedio con dos variables a y b que ya tienen un


valor.

System.out.println( ("el valor del promedio es: " + promedio(a,b));


//El resultado será “el valor del promedio es: 7
a=2; b=2;
promedio(a,b); // invocamos la función promedio con dos variables a y b que ya tienen un
valor.
System.out.println( ("el valor del promedio es: " + promedio(a,b));
//El resultado será “el valor del promedio es: 2 } }

5.3 Implementación.

Una vez identificadas las funciones es importante hacer la ejecución de éstas con una idea
programada o un plan o modelo específico.
Un ejemplo en el Lenguaje de programación Java donde se utilizan la sentencia for, el manejo de
arreglos o matrices y la llamada de funciones.
/import java.util.Scanner;
public class Matriz2 {

/**
* @param args the command line arguments
*/
public static Scanner ob=new Scanner(System.in);
public static void main(String[] args) {
Matriz2 ox= new Matriz2();
int C[][]={{3,4,5},{9,0,3},{1,4,8}};
String nombres[][]={{"Ana","Beto","Irma"},{"Felipe","Alejandro","Mariana"}};
int ab[][]=new int[3][3];

Pág. 47
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

for (int x=0;x<3;x++)


{ for(int y=0;y<3;y++)
{ System.out.print(C[x][y]+" ");
}
System.out.println("");
}
for (int x=0;x<2;x++)
{ for(int y=0;y<3;y++)
{ System.out.print(nombres[x][y]+" ");
}
System.out.println("");
}
datos( ab); //mandar llamar a la función datos con un parámetro que es la matriz
ox.mostrar(ab);
int suma2[][]=new int[3][3];
for (int x=0;x<3;x++)
{ for(int y=0;y<3;y++)
{ suma2[x][y]=ab[x][y]+C[x][y];
System.out.print(suma2[x][y]+" ");
}
System.out.println("");
}

public static void datos(int ab[][])


{
for (int x=0;x<3;x++)
{ for(int y=0;y<3;y++)

Pág. 48
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

{ System.out.println("valor del arreglo");


ab[x][y]=ob.nextInt();
}
}

}
public void mostrar(int ab[][])
{
for (int x=0;x<3;x++)
{
for(int y=0;y<3;y++)
{ System.out.print(ab[x][y]+" ");
}
System.out.println("");
}
}
}
Resolver las siguientes funciones:

Escriba una función que reciba dos números como argumentos y regrese el valor de
su producto.
Escriba una función que reciba dos números como argumentos, la función debe
dividir el primer número entre el segundo. No divida cuando el segundo número sea
cero. Se recomienda usar la sentencia if.
Escriba un programa que use una función para encontrar el promedio de cinco
valores tipo float tecleados por el usuario.

Pág. 49
M.C. Irma Selene Hernández Carrillo
Apuntes de la Materia Fundamentos de Programación

Referencias

 Euán, A., & Cordero, B., (1991). Estructura de Datos. Noriega Limusa.
 Aitken, P., & Jones B., (1994). Aprendiendo C en 21 Días. Prentince Hall.
 Tenenbaum, A., Langsam, Y., & Augenstein., M., (1993). Estructura de Datos.
Prentince Hall.
 Gomez, Enrique., (2012). Desarrollo de Software con NetBeans 7.1. Alfaomega.
 Lenguajes de programación 1, Identificadores, (Abril 2018).
http://agora.pucp.edu.pe/inf2170681/2.htm#:~:text=Un%20identificador%20es
%20un%20nombre,que%20se%20tratar%C3%A1n%20m%C3%A1s%20adelante
 Diseño de funciones, (13 de noviembre de 2019),
 https://fundamentosdelaprogramacion2019.blogspot.com/2019/11/14-diseno-de-
funciones.html
 Lógica de programación.(2020).
https://virtual.itca.edu.sv/Mediadores/dlp/244_estructuras_selectivas_mltiples.html
 Traducción de un programa.(Mayo 2012). Fernández Pau.
https://sites.google.com/site/tecnologicodetuxtlagutierrez/3-3-traduccion-de-un-
programa-compilacion-enlace-de-un-programa-errores-en-tiempo-de-compilacion
 Ejecutables.(2012).https://sites.google.com/site/tecnologicodetuxtlagutierrez/home/
1-9-ejecutables

Pág. 50
M.C. Irma Selene Hernández Carrillo

También podría gustarte