Vous êtes sur la page 1sur 139

Instituto Nacional de México

Departamento de Sistemas y Computación

Programacion
Ing. Sistemas Computacionales

M.C. Emir Abel Manjarrez Montero.


Instituto Nacional de México
Departamento de Sistemas y Computación

M.C. Emir Abel Manjarrez Montero.


emir_manjarrez@itculiacan.edu.mx

Estudios: Experiencia laboral:


1. Maestría en Ciencias 1. Gerente de sistemas en
Computacionales con Especialidad en ClickBalance.com
Ingeniería de Software. 2. Gerente de sistemas en Casas ICI.
Maestro desde 2009. 3. Jefe de desarrollo en Santa Mónica.
1. Materias impartidas en 4. Programador en Casa Ley.
Licenciatura: Arquitectura de
Software, Administración de bases
de datos, Fundamentos de BD, taller
de bases de datos, Temas selectos
de BD, etc.
2. Materias impartidas en Maestría:
Matemáticas discretas y Bases de
conocimiento.
Instituto Nacional de México
Departamento de Sistemas y Computación

Evaluación.
1. Examen: 50%
2. Proyectos y Tareas: 40%
3. Asistencia y participación: 10%

•Para derecho de evaluación


–Asistencia: 80% mínimo
–Portafolio de evidencias 100%
Instituto Nacional de México
Departamento de Sistemas y Computación

Caracterización de la asignatura.

La asignatura de Fundamentos de Programación


aporta al perfil del egresado, los conocimientos,
habilidades, metodologías, así como capacidades de
análisis y síntesis, para plantear la solución de
problemas susceptibles de ser computarizados, a
través de diagramas de flujo, pseudocódigo,
algoritmos y el paradigma de programación
orientada a objetos.
Instituto Nacional de México
Departamento de Sistemas y Computación

OBJETIVO GENERAL DEL CURSO (competencia específica a


desarrollar en el curso)

Analizar y solucionar problemas informáticos y


representar su solución mediante herramientas de
software orientado a objetos.
Instituto Nacional de México
Departamento de Sistemas y Computación

Competencias Previas

• Habilidad para el manejo de la computadora.


• Navegación en Internet.
• Capacidad de análisis y síntesis.
• Manejar herramientas de software mediante menús.
• Manejar comandos y funciones básicas en algún sistema operativo de
computadora.
• Aplicar lógica matemática en la solución de problemas informáticos.
Instituto Nacional de México
Departamento de Sistemas y Computación

Temario

Unidad Contenido Temático

1. Diseño Algorítmico 1.1 Conceptos básicos


1.2 Representación de algoritmos
1.3 Diseño de algoritmos

2. Introducción a la programación 2.1 Conceptos básicos


2.2 Características del lenguaje de programación
2.3 Estructura básica de un programa
2.4 Elementos del lenguaje
Tipos de datos
Literales
Constantes
Variables
Identificadores
Parámetros
Operadores
2.5 Traducción de un programa
Instituto Nacional de México
Departamento de Sistemas y Computación

Temario

Unidad Contenido Temático

3. Control de Flujo 3.1 Estructuras Secuenciales


3.2 Estructuras Selectivas
3.3 Estructuras Iterativas: Hasta, mientras, desde

4. Organización de datos 4.1 Arreglos


4.2 Unidimensionales: conceptos, operaciones y
aplicaciones.
4.3 Multidimensionales
4.4 Estructuras o registros

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


5.2 Paso de parámetros o argumentos
Instituto Nacional de México
Departamento de Sistemas y Computación

1. Conceptos Básicos
1. Clasificación del software de: sistemas y aplicación.
2. Algoritmo.
3. Lenguaje de Programación.
4. Programa.
5. Programación.
6. Paradigmas de programación.
7. Editores de texto.
8. Compiladores e intérpretes.
9. Ejecutables.
10. Consola de línea de comandos.
Instituto Nacional de México
Departamento de Sistemas y Computación

1.1. Clasificación del software de: sistemas y aplicación.

• ¿Qué es el software?
• ¿Desde cuándo existe el software?
• ¿En donde se utiliza el software?
• ¿Quiénes utilizan software?
• ¿Para que se utiliza el software?
• ¿Cómo se desarrolla el software?
Instituto Nacional de México
Departamento de Sistemas y Computación

Definición de Software

“Es el conjunto de los programas de cómputo, procedimientos, reglas,


documentación y datos asociados que forman parte de las operaciones
de un sistema de computación.”

Extraído del estándar 729 del IEEE


Instituto Nacional de México
Departamento de Sistemas y Computación

• Charles Babbage (1791-1871) es considerado “el padre de las


computadoras” debido a su idea de construir una máquina (la máquina
diferencial) capaz de leer secuencias de instrucciones almacenadas en
una memoria, para controlar cálculos.
• Alan M. Turing (1912-1954) formalizó los conceptos de algoritmo y
computación con su “Máquina de Turing”.
• John von Neumann (1903-1957) precursor de la computadora
digital moderna con su idea de almacenar programas en la memoria de
la computadora para ejecutarlos sin volver a escribirlos.
Instituto Nacional de México
Departamento de Sistemas y Computación

Diagrama de la arquitectura Von Neumann.*

*Imagen obtenida de: https://es.wikipedia.org/wiki/Arquitectura_de_von_Neumann


Instituto Nacional de México
Departamento de Sistemas y Computación

Clasificación del Software

● Software de sistema
● Software de programación
● Software de aplicación
Instituto Nacional de México
Departamento de Sistemas y Computación

Tipos de Software

• Software educativo
• Software libre
• Software multimedia
• Software propietario
• Software de sistemas
• Software de aplicación,
• Etc.
Instituto Nacional de México
Departamento de Sistemas y Computación

Software de Sistemas

El software del sistema es aquel que provee servicios para la


computadora (hardware) propiciando un funcionamiento coherente de
todos sus componentes. Provee una interfaz entre el usuario y el
hardware.
– Sistemas operativos
– Controladores de dispositivos
– Herramientas de diagnóstico
– Herramientas de Corrección y Optimización
– Servidores
– Utilerías
Instituto Nacional de México
Departamento de Sistemas y Computación

Investigación

• Compara las características de algunos sistemas operativos que se


usan actualmente.
Instituto Nacional de México
Departamento de Sistemas y Computación

Software de programación

• Herramientas diseñadas para desarrollar (editar, compilar,


ejecutar) programas para computadoras.
• Ejemplos:
– Editores de texto
– Compiladores
– Intérpretes
– Enlazadores
– Depuradores
– Entornos de Desarrollo Integrados (IDE):
Instituto Nacional de México
Departamento de Sistemas y Computación

Editores de texto
Instituto Nacional de México
Departamento de Sistemas y Computación

Investigación

• Escribe un ejemplo de cada uno de los anteriores.


Instituto Nacional de México
Departamento de Sistemas y Computación

Software de aplicación
• Este tipo de software permite a los usuarios efectuar tareas específicas
en cualquier actividad susceptible de ser automatizada. Generalmente,
proporciona servicios a los usuarios.
• Ejemplos:
– Aplicaciones para Control de sistemas y automatización industrial
– Aplicaciones ofimáticas
– Software educativo
– Software empresarial
– Videojuegos
– Software médico
– Software de Diseño Asistido (CAD)
Instituto Nacional de México
Departamento de Sistemas y Computación

Investigación

• Describe brevemente algún software de aplicación que se use en la


vida real.
Instituto Nacional de México
Departamento de Sistemas y Computación

1.2 Algoritmo

• La palabra algoritmo tiene su origen en un autor Persa llamado


ABU JA’FAR MOHAMED Ibn Musa AL Khowarizimi (825 AC) quien
lo escribió en un libro de matemáticas.
• Definición: “cualquier método especial para resolver cierta
clase de problemas”
• En ciencias computacionales: “es un método preciso
usado por una computadora para la solución de un
problema”
Instituto Nacional de México
Departamento de Sistemas y Computación

Partes de un algoritmo

Todo algoritmo debe contener lo siguiente:

– Nombre
– Comentario
– Declaración de variables
– Pasos del algoritmo
Instituto Nacional de México
Departamento de Sistemas y Computación

Características de los Algoritmos

• Debe tener cero o más entradas.


• Debe producir una o más salidas.
• Se componen de una serie finita de pasos.
• Cada paso debe definir exactamente qué se va a hacer.
• Cada operación debe ser efectiva de tal forma que cualquier persona
pueda seguirla.
• Debe tener una opción de terminación.
Instituto Nacional de México
Departamento de Sistemas y Computación

Clasificación de los algoritmos.

• Algoritmos de Ordenamiento.- métodos que sirven para


reacomodar los elementos de un archivo en orden.
• Algoritmos de Búsqueda.- métodos para localizar un elemento
específico en un archivo.
• Algoritmos para procesamiento de Strings.- utilizados para
manejar distintas técnicas de ‘parsing’, coincidencia de patrones,
compresión de archivos y encapsulado de datos.
Instituto Nacional de México
Departamento de Sistemas y Computación

• Algoritmos Geométricos.- se usan para búsquedas en grafos,


problemas de conectividad, ruta más corta, etc.
• Algoritmos Matemáticos.- métodos fundamentales para aritmética
y análisis numérico (polinomios, matrices, números aleatorios,
ecuaciones simultáneas, etc.)
Instituto Nacional de México
Departamento de Sistemas y Computación

Lenguaje de programación
¿Que es un Lenguaje de Programación?
– Notación para describir algoritmos y estructuras de datos además del
significado de las frases.
– Implementación
• Influencias en la evolución de los Lenguajes de Programación
– Evolución del hardware y los sistemas operativos
– Nuevas aplicaciones en diferentes ámbitos
– Métodos de programación / paradigmas y metodologías
– Métodos de implementación - eficiencia
– Estudios teóricos – demostraciones matemáticas
– Estandarización - portabilidad
Instituto Nacional de México
Departamento de Sistemas y Computación

Lenguaje de programación
Instituto Nacional de México
Departamento de Sistemas y Computación

Los primeros lenguajes


• Konrad Zuse – Científico alemán
– Constructor de computadoras 1936-1945
– 1943 Propuesta para su disertación doctoral – el desarrollo de un lenguaje de programación
llamado Plankalkül (program calculus)
– 1945 manuscrito describiendo el lenguaje, publicado en 1972.
– Características del lenguaje:
• Manejo de estructuras de datos
• Datos numéricos
• Arreglos
• Registros
• Recursión
Ejemplo A[5] =A[4] +1
Instituto Nacional de México
Departamento de Sistemas y Computación

•Descripción de un lenguaje de programación.

• ¿Quienes deben entender la descripción de un lenguaje?


– Implementadores
– Usuarios (Programadores)

• Lenguaje de programación = Sintaxis + Semántica


Instituto Nacional de México
Departamento de Sistemas y Computación

Sintaxis – La sintaxis de un lenguaje de programación es la forma de


sus expresiones, estatutos y programas. La estructura de un lenguaje.

• Semántica – Es el significado de esas expresiones, estatutos y


programas.
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación

1.5 Programación

•La programación es un proceso por medio del cual se solucionan problemas a


través de programas utilizando una metodología y algún lenguaje de programación.
•El proceso inicia con la descripción del problema.
•En la etapa de análisis, se consideran los requisitos que debe cumplir el
programa.
•La etapa de diseño, describe los elementos que interactúan para obtener la
solución.
•La implementación consiste en transformar el diseño a código en un lenguaje de
programación.
•Las etapas de depuración y prueba se encargan de eliminar los errores del
programa.
•Ejecución del programa.
Instituto Nacional de México
Departamento de Sistemas y Computación

1.6. Paradigmas de programación.

•Imperativo
–Basic, Pascal, Cobol, Fortran, C
•Funcional
–LISP, SML, Haskell, Miranda
•Lógico
–Prolog
•Orientado a Objetos
–Smalltalk, Java, C#
Instituto Nacional de México
Departamento de Sistemas y Computación

Investigación
•Describe brevemente las características del editor Vi del Sistema
Operativo Unix.
•Describe un editor de textos para MAC
•Describe un editor de textos para Windows
Instituto Nacional de México
Departamento de Sistemas y Computación

1.8. Compiladores e intérpretes.

•Métodos de implementación de LP
–Compilación
–Interpretación
–Sistemas híbridos
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación

Interpretación Pura
Instituto Nacional de México
Departamento de Sistemas y Computación

Sistemas híbridos
Instituto Nacional de México
Departamento de Sistemas y Computación

Investigación
•Investiga para algunos lenguajes de programación:
–Nombre
–Antecedentes
–El paradigma que usan
–Si es compilable, interpretable o usa una combinación de ambos
–Incluye un ejemplo de un programa sencillo en ese lenguaje
Instituto Nacional de México
Departamento de Sistemas y Computación

1.9 Ejecutables

•Los programas ejecutables son aquellos que se encuentran en código


entendible por el hardware y no requieren de un intérprete para su
ejecución.
•Se crean a través de un proceso de compilación y ligado.
Instituto Nacional de México
Departamento de Sistemas y Computación

Algoritmos
Analizar problemas y representar su solución mediante algoritmos.

1.Análisis de problemas. Actividades de Aprendizaje


2. Representación de algoritmos: •Explicar los conceptos básicos para la
formulación de algoritmos, así como sus
gráfica y pseudocódigo. ventajas y desventajas.
3.Diseño de algoritmos aplicados a •Generar un catálogo de problemas para su
problemas. análisis y solución.
•Resolver y analizar problemas cotidianos.
4.Diseño algorítmico de funciones
•Investigar los diferentes métodos para
representar un algoritmo: diagrama de flujo,
Pseudocódigo, Descripción Narrada.
Instituto Nacional de México
Departamento de Sistemas y Computación

Análisis de problemas

•Analizar el enunciado del problema


•Identificar funciones del sistema.
Instituto Nacional de México
Departamento de Sistemas y Computación

Analizar el enunciado del problema

•La parte más difícil en el desarrollo de un sistema es comprender, con


suficiente grado de detalle, el problema a resolver.
•La descripción inicial del problema, generalmente, suele ser incierta e
insuficiente para realizar un análisis adecuado de los requisitos de los
usuarios.
•El análisis de requisitos es complejo.
Instituto Nacional de México
Departamento de Sistemas y Computación

Complejidad del análisis de requisitos

•Diferentes usuarios tienen distintas prioridades, a veces en conflicto.


•Los usuarios no suelen tener una visión clara y fácilmente expresable
de lo que quieren. Por ejemplo, les resulta difícil distinguir entre lo que
hace un sistema existente y lo que tiene que hacer un sistema
adecuado.
•Es difícil imaginar un sistema del cual sólo se ha visto su descripción,
por lo que los usuarios pueden pensar que la descripción es correcta
cuando en realidad falta algo vital.
•Los encargados de hablar con los desarrolladores pueden no tener
experiencia directa en el trabajo que realizan los usuarios del sistema.
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejemplo:

•"El Tecnológico X nos ha contratado para desarrollar un sistema de


software para administrar su biblioteca. La biblioteca utiliza un
programa que data de 1960, escrito en un lenguaje obsoleto. Con ese
programa se llevan a cabo algunas tareas sencillas de gestión de libros
y la búsqueda de usuarios por medio de un índice de credenciales. Se
requiere construir un sistema que mantenga estos dos aspectos en
línea"
Instituto Nacional de México
Departamento de Sistemas y Computación

•Debido a que la información que arroja la narrativa anterior es muy


escasa, se hace una investigación más detallada para averiguar hechos
que ayuden a desarrollar un mejor sistema.
•¿Cómo podrías obtener más información?
•¿Quien es el responsable de proporcionar la información?
•¿Cómo almacenaras la información?
•¿Cómo organizaras la información?
Instituto Nacional de México
Adivina el Asesino Departamento de Sistemas y Computación

El escenario es el siguiente: hay cinco personas. Una de ellas disparó y mató a uno
de los otros. Y para resolver el autor del crimen se cuentan con nueve pistas.

1. Dan corrió ayer la maratón de Nueva York con uno de los hombres inocentes.
2. Mike consideraba ser agricultor antes de mudarse a la ciudad.
3. Jeff es un consultor informático de primer nivel y quiere instalar la nueva
computadora de Ben la próxima semana.
4. Al asesino le amputaron una pierna el mes pasado.
5. Ben conoció a Jack por primera vez hace seis meses.
6. Jack ha estado recluido desde el crimen.
7. Dan solía beber mucho.
8. Ben y Jeff armaron sus últimas computadoras juntos.
9. El asesino es el hermano de Jack. Crecieron juntos en Seattle.
Conociendo estas pistas entonces, ¿quién es el asesino?
Instituto Nacional de México
Departamento de Sistemas y Computación

En la vida cotidiana empleamos algoritmos en multitud de ocasiones para


resolver diversos problemas.
Ejemplos:

- Calcular la suma de 2 números


–Lavarse los dientes.
–Usar de una lavadora (se siguen las instrucciones).
–Cocinar un platillo (se siguen los pasos de la receta).
–Calcular el cociente de dos números.
–Calcular el máximo común divisor de dos enteros positivos.
–Encontrar la ruta más corta entre dos ciudades
–Etc.
Instituto Nacional de México
Departamento de Sistemas y Computación

Representación de algoritmos: gráfica y


pseudocódigo
Definiciones:

•Un algoritmo es un conjunto finito de instrucciones o pasos que


sirven para ejecutar una tarea o resolver un problema.

•Un algoritmo es una secuencia finita de operaciones realizables, no


ambiguas, cuya ejecución da una solución de un problema.
Instituto Nacional de México
Departamento de Sistemas y Computación

Elementos y reglas de la representación gráfica


de los algoritmos
Instituto Nacional de México
Departamento de Sistemas y Computación

Descripción Narrada

Este algoritmo describe textualmente cada una de las actividades a realizar.


•Ejemplo 1 Algoritmo para asistir a clases:
1. Levantarse
2. Bañarse
3. Vestirse
4. Desayunar
5. Cepillarse los dientes
6. Salir de casa
7. Tomar el autobús
8. Llegar al ITC
9. Buscar el aula
10. Ubicarse en un asiento
Instituto Nacional de México
Departamento de Sistemas y Computación

Descripción en Pseudocódigo

•El pseudocódigo es una imitación y versión abreviada de instrucciones


reales para las computadoras.
•Utiliza un pseudolenguaje muy parecido a nuestro idioma, pero que
respeta las directrices y los elementos de los lenguajes de
programación.
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejemplo

Algoritmo que acepta como entrada cuatro valores numéricos y calcula


e imprime su producto, suma y media aritmética.

inicio
leer (a, b, c, d)
producto = (a * b * c * d)
suma = (a + b + c + d)
media = (a + b + c + d) / 4
escribir (producto, suma, media)
fin
Instituto Nacional de México
Departamento de Sistemas y Computación

Diagramas de Flujo

•Son la representación gráfica de la solución algorítmica de un


problema. Se utilizan símbolos o figuras que representan a cada
una de las acciones de un proceso, los cuales están unidos por
flechas que indican el flujo de ejecución.
•Se dibujan de arriba hacia abajo y de izquierda a derecha.
•Siempre se usan flechas verticales u horizontales
•Evitar cruce de flujos
•Cada paso expresa una acción concreta
Instituto Nacional de México
Departamento de Sistemas y Computación

Símbolos gráficos
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación

Algoritmo que acepta como


entrada cuatro valores
numéricos y calcula e
imprime su producto, suma
y media aritmética.
Instituto Nacional de México
Departamento de Sistemas y Computación

Diseño de algoritmos aplicados a problemas

1. Algoritmos secuenciales
2. Algoritmos con selección de alternativas
–Simple
–Doble
–Múltiple
3. Algoritmos con repetición de acciones
–Fija
–Condicional
Instituto Nacional de México
Departamento de Sistemas y Computación

Algoritmos secuenciales

•Ejercicios de conversiones
–Monedas- Pesos a dólares
–Temperaturas- Grados Celsius a Fahrenheit
–Distancia- Metros a pies
–Pesos- Kilogramos a libras
–Etc.
•Cálculos de figuras geométricas
–Perímetros
–Áreas
–Volumen
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejercicios

•La empresa “Todo a $10” vende a sus clientes artículos al mismo


precio. Escribe un algoritmo que lea la cantidad de artículos a vender y
obtenga el total a pagar, agregando el 16% de iva.
•Escribe un algoritmo para la CFE que reciba como entrada la cantidad
de kw consumidos por un usuario y obtenga la cantidad a pagar. Para
obtener la cantidad a pagar cada kw tiene un costo de $0.68
•Escribe un algoritmo para obtener la cantidad a pagar de un usuario
de la JAPAC, toma como entrada la cantidad de m3 de agua consumidos
(cada m3 se cobra a $4.50 y se agrega el 16% de iva)
Instituto Nacional de México
Departamento de Sistemas y Computación

Algoritmos con selección de alternativas


•Escribe un algoritmo que lea de teclado un número entero y determine si es par o impar.
•Escribe un algoritmo que lea una calificación de un alumno y obtenga como salida un
mensaje si fue aprobado o reprobado (70 o más es aprobado).
•Escribe un algoritmo que reciba un número del 0 al 10 y regrese como resultado el
número en letras.
•Escribe un algoritmo que lea un numero y si este es par obtenga su mitad, si es impar,
obtenga su cuadrado.
•Escribe un algoritmo que lea un dato numérico y dependiendo del rango donde se
encuentre obtenga el resultado:
Rango resultado
0-5 Malo
6-7 Regular
8-9 Bueno
10 Excelente
Instituto Nacional de México
Departamento de Sistemas y Computación
Quiz
Ejercicio:
● Un restaurante ofrece un 10% de descuento para consumos de hasta 500 }, y un
descuento de 20% para consumos mayores. Para ambos casos aplica un impuesto
(IVA) de 16%. Escriba un algoritmo para determinar el monto de descuento, el
impuesto e importe a pagar.

○ Ejemplo 1: ○ Ejemplo 2:
■ Captura: ■ Captura:
● Consumo: 100 ● Consumo: 1000
■ Salida: ○ Salida:
● Descuento: 10% = 10 ● Descuento: 20% = 200
● Subtotal: 90 ● Subtotal: 800
● Impuesto: 14.4 ● Impuesto: 128
● Total: 104.4 ● Total: 928
Instituto Nacional de México
Departamento de Sistemas y Computación

Escribe un algoritmo que lea 5 numeros,


calcule el mayor, menor y la suma de los
numeros.
Instituto Nacional de México
Departamento de Sistemas y Computación

Algoritmos con repetición de acciones


•Lee de teclado x números enteros hasta que el número leído sea 0.
•Lee de teclado la edad de 10 personas y obtén como resultado el promedio de las
edades.
•Escribe un algoritmo que reciba como parámetro un entero y determine si este es o no
un número primo. Los números primos son aquellos que solo tienen dos divisores (ellos
mismos y la unidad)
•Lee de teclado nombre y sexo de 10 personas y obtén como resultado el número de
mujeres.
•Lee de teclado nombre y edad de 10 personas y obtén como resultado el promedio de
edad de los hombres.
•Lee de teclado nombre, edad y sexo de 10 personas y obtén como resultado el número
de mujeres, el promedio de edad de las mujeres y el nombre de la más joven.
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejercicios propuestos
0. Solicita el nombre de una persona y despliega el mensaje “Hola nombre!!”
1.La empresa “Todo a $10” vende artículos al mismo precio. Escribe un algoritmo que
lea la cantidad de artículos a vender y obtenga el total a pagar, agregando el 10% de
iva, lea la cantidad pagada y obtenga en cambio que debe recibir el cliente.
2.Escribe un algoritmo para obtener la cantidad a pagar de un usuario de la CFE, la
tarifa depende de los Kw consumidos (ve un recibo de CFE)
3.Escribe un algoritmo para obtener la cantidad a pagar de un usuario de la JAPAC, la
tarifa depende de los m3 consumidos (ve un recibo de JAPAC)
4.Escribe un algoritmo que lea de teclado un número entero y determine si es par o
impar.
5.Escribe un algoritmo que obtenga el número de letras que contiene un string.
6.Lee de teclado la edad de 50 personas y obtén como resultado el promedio de las
edades.
Instituto Nacional de México
Departamento de Sistemas y Computación

7.Escribe un algoritmo que lea de teclado nombre y edad de 20 personas y obtenga el


nombre de la persona mayor.
8.Lee de teclado x números enteros hasta que el número leído sea 0.
9.Escribe un algoritmo que lea de teclado un string y obtenga el total de caracteres que
son dígitos.
10.Escribe un algoritmo que reciba como parámetro un número entero y obtenga como
resultado un valor boolean, verdadero si el número es par y falso si es impar.
11.Escribe un algoritmo que reciba como parámetro un entero y determine si este es o
no un número primo. Los números primos son aquellos que solo tienen dos divisores
(ellos mismos y la unidad)
12.Escribe un algoritmo que reciba un número del 0 al 10 y regrese como resultado el
número en letras.
13.Escribe una clase Alumno que contenga atributos para nombre, apellido, sexo,
promedio y métodos getNombre, getSexo, getEdad.
Instituto Nacional de México
Departamento de Sistemas y Computación

14.Escribe un algoritmo que lea de teclado los datos de 50 objetos tipo Alumno y regrese como
resultado el número de mujeres que hay en el grupo
15.Escribe un algoritmo que lea de teclado los datos de 50 objetos de tipo Alumno y regrese el
promedio de todo el grupo.
16.Escribe un algoritmo que lea de teclado los datos de 50 objetos de tipo Alumno y regrese
como resultado el total de alumnos reprobados con promedio menor que 70.
17.Escribe un algoritmo que lea de teclado un entero entre 0 y 99 y obtenga el número de
decenas que contiene.

18.Escribe un algoritmo que lea de teclado una cantidad en pesos y regrese como resultado la
cantidad en dólares, el tipo de cambio es 11.17 pesos por dólar.
19.Escribe un algoritmo que reciba lea de teclado una cantidad en dólares y regrese como
resultado la cantidad en pesos, el tipo de cambio es 11.17 pesos por dólar.
20.Escribe un algoritmo que lea de teclado un número y regrese como resultado un mensaje
indicando si el número esta en el rango de 0 a 100.
21.Escribe un algoritmo que lea de teclado un string y regrese un mensaje indicando si el string
es un palíndromo.
Instituto Nacional de México
Departamento de Sistemas y Computación

22.Escribe un algoritmo que lea de teclado un string y obtenga como


resultado el número de palabras que contiene.
23.Escribe un algoritmo que lea de teclado un número entero y regrese
como resultado en pantalla todos sus divisores
Instituto Nacional de México
Unidad 2 - Introducción a la programación Departamento de Sistemas y Computación

● Conocer las características principales de un lenguaje de programación.


● Codificar algoritmos en un lenguaje de programación.
● Compilar y ejecutar programas.

2.1 Conceptos básicos Actividades de aprendizaje


2.2 Características del lenguaje de
programación 1. Realizar un mapa conceptual sobre los tipos de
datos y los conceptos del lenguaje Java.
2.3 Estructura básica de un
programa
2. Mostrar al estudiante programas completos de
2.4 Elementos del lenguaje menor a mayor grado de dificultad y con base en
Tipos de datos cada una de las instrucciones que los componen
Literales enseñar la sintaxis del lenguaje.
Constantes
Variables
Identificadores
Parámetros
Operadores
2.5 Traducción de un programa
Instituto Nacional de México
Departamento de Sistemas y Computación

Estructura básica de un programa en Java


Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Descarga e Instalación de Java Departamento de Sistemas y Computación

● Descargar JDK de Java


● Instalar el JDK siguiendo las
instrucciones
● Verificar que se hayan creado
todos los directorios.
● Verificar la instalación con un
programa de prueba

http://www.oracle.com/tech
network/java/index.html
Instituto Nacional de México
Departamento de Sistemas y Computación

Directorio de archivos instalados


Instituto Nacional de México
Departamento de Sistemas y Computación

Ejecución de un programa escrito en Java


Instituto Nacional de México
Departamento de Sistemas y Computación

Editar el programa

● Crear con un editor el archivo fuente.


● Guardar en el directorio bin con el mismo nombre de
la clase y extensión java.
Instituto Nacional de México
Departamento de Sistemas y Computación

Compilar un programa
Compilar un programa
•Compilar el programa usando:
>javac Nombre.java
● Si el programa no tiene errores se
creará un archivo de bytecodes
llamado Nombre.class, si tiene
errores se debe editar el programa,
corregir los errores, almacenar el
programa y volver a compilar.
● En la consola de comandos invocar al
COMPILADOR de Java
Instituto Nacional de México
Departamento de Sistemas y Computación

Depuración
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejecución de un programa
Instituto Nacional de México
Departamento de Sistemas y Computación

Elementos del lenguaje

1.Comentarios
2.Palabras reservadas
3.Tipos de datos
4.Variables
5.Operadores
6.Expresiones
7.Instrucciones.
8.Bloques.
9.Control de flujo
Instituto Nacional de México
Departamento de Sistemas y Computación

Comentarios

•Los comentarios permiten a los programadores comunicar sus


pensamientos independientemente del código escrito.
•Los comentarios NO generan código ejecutable, el compilador los
ignora.
•En Java existen dos tipos de comentarios
–De fin de línea - inician con //
–Entre líneas - están delimitados por /* */
Instituto Nacional de México
Departamento de Sistemas y Computación

Palabras Reservadas
Son palabras que tienen un significado especial en el lenguaje y no
pueden ser usadas como identificadores.
Instituto Nacional de México
Departamento de Sistemas y Computación

Tipos de Datos

● En el lenguaje de programación Java, existen dos categorías de


datos:
○ Primitivos
○ Referenciales
● Una variable de tipo primitivo contiene un valor simple del tamaño
y formato apropiado para su tipo: un número, un carácter, o un
valor booleano (condicional verdadero ó falso).
● Una variable de tipo referencial contiene una referencia a un
objeto del tipo especificado o cualquier otro derivado de el.
Instituto Nacional de México
Departamento de Sistemas y Computación

Tipos de Datos Primitivos

La siguiente tabla lista, por palabras reservadas, todos los tipos de


datos primitivos soportados por Java, sus tamaños y formatos, y una
breve descripción de cada uno:
Instituto Nacional de México
Departamento de Sistemas y Computación

Variables
● El nombre de variable debe ser un identificador válido, -- un número ilimitado de
caracteres Unicode que comienza con una letra.
● No debe ser una palabra reservada, un literal booleano (true or false), ó la literal
null.
● Debe ser única dentro de su ámbito. Un nombre de variable puede ser repetido si su
declaración aparece en un ámbito diferente.
● El tipo de variable determina que valores puede contener y que operaciones se pueden
realizar en ella.
● Una variable debe ser declarada para poder ser utilizada

Ejemplos:
int x; // define una variable de tipo entero llamada x
String nombre; // define una variable de tipo String llamada nombre
Object c;
Bicicleta miBici;
Instituto Nacional de México
Ejemplo de Declaración de VariablesDepartamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación

Inicialización de Variables

Las variables locales y variables miembro pueden ser inicializadas con


una instrucción de asignación en el momento que son declaradas. El
tipo de dato debe ser acorde al valor asignado. Ejemplo:

Los parámetros de métodos y los parámetros de manejadores de


excepciones no pueden ser inicializados de esta forma. El valor para
un parámetro es fijado por el invocador.
Instituto Nacional de México
Departamento de Sistemas y Computación

Constantes (final)

Se puede declarar una variable en cualquier ámbito para que sea final.
El valor de una variable final no puede cambiar después de que ha sido
inicializada. Tales variables son similares a las constantes en otros lenguajes.
Para declarar una variable final, escribe la palabra reservada final antes del
tipo:
final int aFinalVar = 0;

En el caso del ejemplo, se ha declarado e inicializado la variable en un solo paso. Se puede hacer en dos
pasos si se prefiere. Hecho esto, si se intenta asignar posteriormente un valor a ésta variable, produciría un
error de compilación
Instituto Nacional de México
Departamento de Sistemas y Computación

Resumen

● Existen dos tipos: primitivas y de referencia.


● La ubicación de una declaración de variable indica implícitamente
el ámbito de la variable. Hay cuatro categorías de ámbito:
miembro de variable, variable local, parámetro.
● Se puede proveer un valor inicial para una variable dentro de su
declaración empleando el operador de asignación (=).
● Se puede declarar una variable como constante(final). El valor de
una variable final no puede ser cambiado después de que ha sido
inicializada.
Instituto Nacional de México
Departamento de Sistemas y Computación

Operadores

● Un operador aplica una función en uno, dos o tres operandos. Un


operador que requiere un operando es denominado operador
unario. Ej. ++ es un operador unitario que incrementa en uno el
valor de su operando.
● Un operador que requiere dos operandos es un operador binario.
● Ej. = es un operador binario. Se usa para asignación de valores a
variables.
● Un operador que requiere tres operadores se denomina ternario.
Existe un operador ternario ?: que es una abreviación de la
instrucción if-else.
● Existen también tres modalidades de notación: prefija, postfija e
infija.
Instituto Nacional de México
Departamento de Sistemas y Computación

Operadores Aritméticos
Java soporta varios operadores aritméticos para todos los números
enteros y de punto flotante:
+ (suma), - (resta), * (multiplicación), / (división) y % módulo.
Instituto Nacional de México
Departamento de Sistemas y Computación

Operadores Aritméticos (2/2)


Instituto Nacional de México
Departamento de Sistemas y Computación

Operadores Relacionales
Un operador relacional compara dos valores y determina la relación entre ellos. Por
ejemplo, != retorna verdadero si los dos operandos son diferentes. A continuación una
tabla de operadores:
Instituto Nacional de México
Departamento de Sistemas y Computación

Operadores Condicionales
Los operadores relacionales frecuentemente son empleados con operadores condicionales
para construir expresiones más complejas de toma de decisiones. El lenguaje de
programación Java soporta seis operadores condicionales – cinco binarios y uno unario -
como aparece en la siguiente tabla:
Instituto Nacional de México
Departamento de Sistemas y Computación

Otros Operadores
Instituto Nacional de México
Departamento de Sistemas y Computación

Expresiones
Variables y operadores, los cuales aparecen en las secciones previas, son bloques básicos que
conforman los programas.
Se pueden combinar literales, variables, y operadores para formar expresiones – segmentos de
código que realizan cálculos y retornan valores.
Una expresión es una serie de variables, operadores y llamadas a métodos
(construidas de acuerdo a la sintaxis del lenguaje) que resultan en un valor simple.

ejemplo:
count = 1
(count == 0)
x1 = -b + Math.sqrt((Math.pow(b,2) + 4*a*c)/ (2*a))
contador++
caracter = s1.charAt(0)
bandera = !bandera
Character.isUpperCase(aChar)
Instituto Nacional de México
Departamento de Sistemas y Computación

Entrada y Salida de Datos


Instituto Nacional de México
Departamento de Sistemas y Computación

Entrada de datos

•Java ofrece varias alternativas para leer datos por teclado.


•Dentro de las clases disponibles esta la clase Scanner
•Para poder utilizar esta clase es necesario hacer lo siguiente:
–Importar la clase
import java.util.Scanner;
–Declarar el uso de la clase
static Scanner lectura = new Scanner(System.in);
–Llamar a las funciones que permiten la lectura de datos por teclado, por medio
del objeto creado con la clase Scanner:
lectura.next()
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejemplo utilizando la clase Scanner


Instituto Nacional de México

Lectura con la clase Keyboard Departamento de Sistemas y Computación

//*******************************************************
*********
// Keyboard.java Author: Lewis and Loftus
//
// Facilitates keyboard input by abstracting details about input
// parsing, conversions, and exception handling.
//*******************************************************
*********
import java.io.*;
import java.util.*;
public class Keyboard
{…
public static String readString(){..}
public static String readWord() {..}
public static boolean readBoolean() {..}
public static char readChar() {..}
public static int readInt() {..}
public static long readLong() {..}
public static float readFloat() {..}
public static double readDouble() {..}

}
Instituto Nacional de México
Departamento de Sistemas y Computación

Control de Flujo

Construir programas utilizando estructuras condicionales y repetitivas


para aumentar su funcionalidad

1. Estructuras secuenciales. Actividades de Aprendizaje


2. Estructuras selectivas: •Realizar una investigación sobre el
funcionamiento y aplicación de las
simple, doble y múltiple. estructuras de selección y de repetición.
3. Estructuras iterativas: •Diseñar programas donde se utilicen las
repetir mientras, hasta, estructuras de repetición y selección.
desde •Construir programas que implementen
4. Diseño e implementación de métodos o funciones.
funciones.
Instituto Nacional de México
Departamento de Sistemas y Computación

Instrucciones o Sentencias

Una instrucción forma una completa unidad de


ejecución. Los siguientes tipos de expresiones pueden
ser convertidas en instrucciones finalizando la
expresión con un punto y coma, ( ; ).
● Expresiones de asignación.
● Cualquier uso de ++ ó --.
● llamadas a métodos.
● Expresiones de creación de objetos.
Instituto Nacional de México
Departamento de Sistemas y Computación
Bloques

Un bloque es un grupo de cero o más instrucciones entre llaves


balanceadas (que abren y cierran) y que puede ser usada en cualquier
sitio donde una simple instrucción sea permitida. El listado siguiente
muestra dos bloques del programa MaxVariablesDemo, conteniendo una
instrucción simple:
if (Character.isUpperCase(aChar)) {
System.out.println("The character " + aChar + " is upper
case.");
} else {
System.out.println("The character " + aChar + " is lower
case.");
}
Instituto Nacional de México
Instrucción For Departamento de Sistemas y Computación

La instrucción for provee una forma compacta de iterar sobre un rango de valores.
La forma general de la instrucción for puede ser expresada como esto:
for (initialization; termination; increment) {
estatuto
}
● La expresión initialization es una expresión que inicializa el bucle. Es ejecutada
una vez al comienzo del bucle.
● La expresión termination determina cuando terminar el bucle. Esta expresión es
evaluada al tope de cada iteración del bucle. Cuando la expresión evalúa a falso, el
bucle termina.
● La expresión increment es invocada después de cada iteración.
Todos esos componentes son opcionales.
Los bucles for son frecuentemente utilizados para iterar sobre los elementos de un
arreglo, o los caracteres de un String
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejemplos usados por For


Instituto Nacional de México
Departamento de Sistemas y Computación

While y Do-While

Se debe usar una instrucción while para continuamente ejecutar un


bloque de instrucciones mientras una condición permanezca verdadera.
La sintaxis general de while es:
while (expression){
estatuto;
}

Primero, la instrucción while evalúa la expresión, la cual debe retornar


un valor booleano. Si la expresión retorna verdadero, entonces la
instrucción while ejecuta las instrucciones dentro del bloque asociado.
El proceso se mantiene ininterrumpido hasta que la expresión retorne
falso.
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejemplo usando while


Instituto Nacional de México
Departamento de Sistemas y Computación

Ejemplo Do-While

Esta instrucción es muy similar a la anterior, con la diferencia de que la


evaluación de la instrucción se hace al final, no al principio. Esto
permite ejecutar por lo menos una vez el bloque asociado sin evaluar la
expresión.

do {
estatuto;
} while (expresionBooleana);
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejemplo do-while
Instituto Nacional de México
Departamento de Sistemas y Computación

Ejercicio de estructuras selectivas


Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Ejercicios para estructuras de repetición
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación

Unidad IV - Organización de datos


Instituto Nacional de México
Departamento de Sistemas y Computación

Strings

Los lenguajes de programación fueron creados por la necesidad de


resolver problemas aritméticos o lógicos.
Actualmente el tratamiento de información alfanuméricos(textos) es
importante y de gran utilidad para el procesamiento de operaciones con
caracteres (cadenas).

● Una cadena(String) de caracteres es una secuencia de cero o más


símbolos, que incluyen letras del alfabeto, dígitos y caracteres
especiales.
Instituto Nacional de México
Estándar ASCII (American Standard Code for Departamento de Sistemas y Computación

Information Interchange)
Instituto Nacional de México
Departamento de Sistemas y Computación

Tipo de Dato Char

Tipo de dato primitivo que representa un solo carácter. Generalmente


se delimitan con comillas simples.
Ejemplo

char caracter = ‘A’;


System.out.println(caracter);

caracter = (char) 67;


System.out.println(caracter);
Instituto Nacional de México
Departamento de Sistemas y Computación

Cadena de caracteres (String)

Representa una secuencia de caracteres y, por lo general, lo


representamos entre comillas dobles.
● Para la manipulación de cadenas los lenguajes de programación
incorporan un conjunto de operaciones y/o métodos que permiten
procesar los textos.
● Las operaciones de cadenas más usadas son:
○ Inicializar
○ Concatenación
○ longitud de una cadena
○ Búsqueda de subcadenas
○ Conversiones
Instituto Nacional de México
Departamento de Sistemas y Computación

Concatenación de cadenas

Unir varias cadenas en una sola.


Ejemplo:
String cadena = “Emir “ + ” Abel “;
System.out.println(cadena);

String saludo = “Hola “ + cadena;


System.out.println(saludo);
Instituto Nacional de México
Departamento de Sistemas y Computación

Longitud de una cadena

Contar el número de caracteres de una cadena. El método length


retorna el número de caracteres que contiene la cadena.
Ejemplo:
String cadenavacia = “”;
System.out.println(“Longitud de la cadena vacia es = “ +
cadenavacia.length());

String nombre = “Emir”;


System.out.println(“Longitud de nombre = “ + nombre.length());
Instituto Nacional de México
Departamento de Sistemas y Computación
Comparación de cadenas
Permiten determinar la igualdad o desigualdad de dos cadenas.
String cadena = "";
System.out.println("Cadena Vacía: " + cadena);
System.out.println("Longitud de Cadena Vacía: " + cadena.length());

if(cadena == "") {
System.out.println("Iguales");
}
cadena = "A";
if(cadena == "A") {
System.out.println("Iguales");
}

if(cadena. compareTo("B") == 0) {
System.out.println("Iguales");
} else {
System.out.println(cadena + " Diferente de B");
}
Instituto Nacional de México
Departamento de Sistemas y Computación

Subcadenas

Extraer una parte específica de la cadena. Por lo general el primer


carácter de una cadena empieza en la posición cero (0), es decir:

“Juan” consta de 4 caracteres, “J” es el primer carácter y está en la


posición 0. “u” es la segunda posición y está en la posición 1, y así
sucesivamente.
Instituto Nacional de México
Departamento de Sistemas y Computación

El tipo de dato String tiene un método:


substring(int startIndex, int endIndex)
Ejemplos:
// extraer el primer carácter por la izquierda
String subcadena = “ ABS”.substring(0, 1);
System.out.println(subcadena);
// extraer el último carácter por la izquierda
String subcadena = “AB S”.substring(2, 3);
System.out.println(subcadena);
// extraer el carácter del medio
String subcadena = “A BS”.substring(1, 2);
System.out.println(subcadena);
Instituto Nacional de México
Departamento de Sistemas y Computación

Búsqueda de subcadenas

El tipo de dato String cuenta con el método


int indexOf(String subcadena)
el cual retorna la posición donde aparece la subcadena, en caso de que
no exista regresa -1.
Ejemplos:
int posicion = “ABC”.indexOf(“B”);
System.out.println(posicion);

posicion = “ABC”.indexOf(“Z”);
System.out.println(posicion);
Instituto Nacional de México
Departamento de Sistemas y Computación

Conceptos

● Un arreglo es una estructura que contiene una serie de elementos


homogéneos (mismo tipo).
● Un arreglo puede tener una o más dimensiones.
● Los elementos de un arreglo se localizan por medio de índices (un
índice por cada dimensión).
● En Java, los arreglos son referencias (la declaración NO reserva
memoria para los elementos).
● Java provee dos clases que contienen métodos para manipular
arreglos (Arrays y Vector)
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Arreglos Unidimensionales listas (vectores) Departamento de Sistemas y Computación

● Un arreglo unidimensional es una estructura que puede contener una serie de


elementos del mismo tipo en un momento específico del tiempo. Cada elemento se
localiza por medio de un índice.
● En Java, los arreglos son objetos que almacenan un grupo de valores del mismo tipo.
Cada elemento se almacena en una posición que va de 0 hasta número de
elementos -1
● Un arreglo puede ser creado después de definirlo con una lista de valores iniciales o
usando la palabra new y el número de elementos
● El tamaño del arreglo se define en su creación y NO puede cambiar durante la
ejecución del programa.
● Los elementos de un arreglo unidimensional se almacenan en posiciones específicas,
las cuales se identifican con un índice desde 0 hasta ta maño-1.
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación
Instituto Nacional de México
Departamento de Sistemas y Computación

Vous aimerez peut-être aussi