Programador de Sistemas
Módulo 1. Teoría de la Programación
Septiembre 2011
Antonio J. Emperador Sau
[email protected]
1. Fundamentos de programación
•
•
Estructura de un ordenador
Representación de la información en un ordenador
Sistema binario y otros sistemas de numeración
Números con signo, con decimales y con coma flotante
Representación de caracteres
•
•
•
•
Software y lenguajes de programación
Software
•
•
•
De sistema
De aplicación
Lenguajes
•
•
•
•
•
Máquina
Ensamblador
Alto nivel
Scripting
1. Fundamentos de programación
•
Principios básicos de la programación estructurada
•
•
•
•
•
•
Dividir en módulos
Dividir la funcionalidad en funciones para una sola tarea
Programar funciones en estructura de bloques
Cada bloque solo puede tener un punto de entrada y de salida
Al finalizar un bloque debe continuar con otro o finalizar
Representación = Diagramas de flujo
proceso
decisión
imprimir
entrada datos
terminador
disco
datos
1. Fundamentos de programación
•
Bloques:
•
•
•
•
Secuencial
Repetitivo
De selección o bifurcación
Pasos para resolver un problema de programación
•
•
•
•
•
•
Análisis de requisitos
Diseño del programa
Codificación
Prueba del programa
Validación del programa
Optimización
1. Fundamentos de programación
1.
Ejercicios de sistemas de numeración
a)
Pasar a binario los siguientes números decimales:
•
b)
Pasar a decimal los siguientes números binarios:
•
c)
101110, 110110101, 10001010110, 00101011101
Pasar a octal y hexadecimal los siguientes binarios:
•
d)
e)
f)
37, 104, 281
10010111011, 1110111001101
Calcular el número -17 por complemento a dos y sumarlo al 17
Pasar a binario el número decimal 123,75
Pasar a decimal el número binario decimal 1101101,1011
1. Fundamentos de programación
2.
Operaciones con sistemas de numeración
a)
b)
c)
3.
Sumar los binarios 1011011101 y 11101101
Hacer un AND entre 101110110 y 110100110. Pasar a decimal
Hacer un OR entre 1101101110 y 100011101. Pasar a decimal
Ejercicios de diagramas:
a)
b)
c)
Llover y coger paraguas
Calcular el área de un círculo
Suma de los primeros 20 números naturales
1. Fundamentos de programación
•
Soluciones a los ejercicios:
•
•
•
•
•
•
•
•
•
1.a) 37 =b 100101, 104 =b = 1101000, 281 =b 100011001
1.b) 101110 =d 46, 110110101 =d 437, 10001010110 =d 1110,
00101011101 =d 349
1.c) 10010111011 =o 2273 =h 4BB, 1110111001101 =o 16715 =h ADCD
1.d) 17 =b 10001, -17 =c2 01111, 10001+01111 = 00000
1.e) 123,75 =b 1111011,11
1.f) 1101101,1011 =d 109,9375
2.a) 1011011101 + 11101101 = 1111001010 =d 970
2.b) 101110110 AND 110100110 = 100100110 =d 294
2.c) 1101101110 OR 100011101 = 1101111111 =d 895
2. Metodología de la programación
•
•
•
Algoritmos
Programación estructurada vs. Programación orientada a
objetos
Elementos básicos de un programa
Los datos
•
•
En variables (definidas por nombre, tipo y valor)
Las instrucciones
•
•
•
De asignación (Variable = Expresión o mejor Variable 
Expresión)
Expresiones numéricas
•
•
•
suma, resta, multiplicación, división y resto de div. entera
+, -, *, /, %
Expresiones condicionales o lógicas
•
•
Operadores de relación: <,>,=,<=,>=,<> (!=)
Operadores lógicos: AND, OR, NOT (&&, ||, !)
2. Metodología de la programación
•
Elementos básicos de un programa
Estructuras básicas de control
•
•
Instrucciones condicionales (SI)
•
Instrucciones repetitivas
•
•
•
MIENTRAS
REPETIR MIENTRAS
Bucle PARA
2. Metodología de la programación
•
Ejercicios de expresiones:
Calcular:
•
•
•
•
•
A=2
B=A+1
A=A+B*2
A=A%B
Suponiendo A=1 y B=A*2+A, calcular:
•
•
•
•
A=2*(A+B*2)
A=A%B
B=B/A
Suponiendo A=30 Y B=20, dar el valor de las expresiones:
•
•
•
•
•
•
•
5>4
A<5
A<=b
A-10=B
A*2=B*3
A<>30
2. Metodología de la programación
•
Ejercicios de expresiones:
Suponiendo A=30 y B=20, indicar el valor de las siguientes expresiones:
•
•
•
•
•
•
A>5 AND B<40
A>5 AND A<30
A>5 OR A<30
A>B AND B<15 AND B>10
A>B OR A<15 OR B>10
Suponiendo A=30 y B=20, indicar el valor de las siguientes expresiones:
•
•
•
B<15 AND A>B OR B>10
B<15 AND (A>B OR B>10)
Suponiendo A=30 y B=20, indicar el valor de:
•
•
•
•
A>5 AND A<>44 AND B+A>B*2
(A>5 OR B<10) AND A<40
A>3 OR B=20 AND B=A
2. Metodología de la programación
Ejercicios de ordinogramas:
•
1.
2.
3.
4.
5.
6.
7.
Dibujar el ordinograma de un programa que calcule la media de
tres números a introducir
Realizar el ordinograma de un programa que intercambie el valor
de dos variables
Realizar el ordinograma de un programa que desglose una
cantidad de euros en billetes de 10 y 5 y monedas de 1 euro.
Dibujar el ordinograma de un programa que lea dos números y
después escriba el mayor seguido del menor
Realizar el ordinograma de un programa que lea dos números y
escriba el mayor
Realizar el ordinograma de un programa que sume el valor de
cinco números leídos de teclado
Realizar el ordinograma de un programa que calcule el factorial
de un número natural cualquiera
2. Metodología de la programación
Más ejercicios de ordinogramas:
•
8.
9.
10.
11.
12.
13.
14.
Programa que lee números enteros positivos del teclado hasta que
el número introducido sea un 0; entonces se deja de pedir
números y se muestra el total
Programa que escribe la tabla de multiplicar de un número leído
por teclado
Programa que calcula los divisores de un número positivo
Programa que lee un número y dice cuántos dígitos tiene
Programa que calcula la suma de los dígitos pares de un número
pedido
Programa que lee un número en base 10 y lo pasa a base 2
Realizar la descomposición factorial de un número, es decir,
indicar los números primos divisores del número con su exponente
correspondiente
3. Fases en el desarrollo
•
Diseño
•
•
•
Codificación
•
•
•
•
•
•
•
Editor: creación del código
Compilador: del fuente al objeto y de él al ejecutable
Montaje o enlazado: división en ficheros y reensamble
Ejecutar
Depurar
Uso de ayuda y manuales
Documentación de aplicaciones
•
•
•
Descendente (top-down): división en módulos
Ascendente (bottom-up): reutilización de código
Manuales de desarrollo (requisitos, diseño, código comentado, plan de
pruebas, plan de calidad y control de configuración)
Manuales para usuarios (manuales de instalación, de usuario y calidad)
Pruebas de software
3. Fases en el desarrollo
•
Manuales de usuario:
Descripción general
Tipo de usuarios a los que va dirigida
Diferencia con versiones anteriores (csv)
Métodos de arranque y ejecución
Restricciones y comportamiento
Comportamiento por tipología de usuario
Errores que pueden producirse
Índice alfabético
•
•
•
•
•
•
•
•
•
Ejercicios (a realizar en dos grupos)
Realizar la división en módulos de una aplicación para gestionar un
instituto. Se considerarán los grupos, las aulas y demás recintos, los
profesores, alumnos, asignaturas, calificaciones, etc.
Realizar el manual de usuario de:
•
•
•
•
Grupo 1: aplicación de un cajero automático
Grupo 2: aplicación que suma valores hasta que se mete 0
4. Tipos de datos
•
Clasificaciones:
•
•
•
•
Identificadores, variables y constantes
Tipos de datos elementales:
•
•
•
•
•
•
•
•
Tipos elementales
Operadores
Tipos numéricos enteros
Tipos numéricos reales
Números complejos
Tipo carácter (ASCII)
Tipo lógico
Tipos avanzados
•
•
•
•
Por tamaño en memoria fija o variable (estáticos y dinámicos)
Por número de elementos (básicos y complejos)
Arrays
Cadena de caracteres
Estructuras y punteros
Conversión de tipos
4. Tipos de datos
4. Tipos de datos
Ejercicios
•
Indicar el tipo de dato adecuado para:
1.
•
•
•
•
•
La edad de un niño
Las medidas de un edificio
El nombre de una persona
La letra de su apartamento
Indicar si alguien tiene o no hijos
Escribir un programa que:
2.
a)
b)
c)
d)
e)
Lea un número, lo multiplique por 20 e imprima su división por 10. A
continuación se debe sumar dicho número a la multiplicación y volver a
imprimir su división por 10. Si el resto no es cero, se debe imprimir también.
Lea un número real, lo multiplique por 20 e imprima su división por 10. A
continuación debe sumar el número a la multiplicación y volver a imprimir su
división por 10. Si el resto no es cero, se debe imprimir también.
Calcule las raíces de la ecuación de segundo grado ax2+bx+c=0 y las imprima
por pantalla. Se deben pedir los coeficientes a, b y c
Muestra por pantalla las letras minúsculas y su código ASCII
Ordene de menor a mayor dos caracteres que se leen por pantalla y los escribe
ordenados
4. Tipos de datos
Ejercicios
•
Escribir un programa que:
1.
a)
b)
c)
d)
e)
2.
Calcula el número de meses, días, horas, minutos y segundos que hay
en un número de años a pedir
Calcula el área de un cilindro de radio r y altura h. Definir la
constante Pi = 3,141598
Defina un número real, calcule su raíz cuadrada y la redondee al
entero más próximo
Reciba un número de horas y calcule las semanas, días y horas que
representa
Declare un string de 32 caracteres que incluye el nombre y apellidos
de una persona. Le damos un valor inicial. Usando operaciones de
string, extraer el nombre y los apellidos, teniendo en cuenta que la
longitud del nombre es 8 y la de cada apellido es 12
Hacer los programas que resuelvan los ordinogramas planteados
en los ejercicios iniciales.
5. Sentencias de control
•
Tipos de estructuras:
•
•
•
•
De secuencia
De selección
De iteración
Sentencias:
•
•
•
•
•
•
•
If
If-else
While
For
Do-while
Switch
Break y continue
5. Sentencias de control
Ejercicios
•
Escribir un programa que:
1.
a)
b)
c)
d)
Lea un número e indique si es par o impar
Lea un número N mayor que 0 y calcule la siguiente suma 1+2+3+…+N
Lee dos números a y b y calcule ab
Solicita un número N y muestra en pantalla:
1
12
123
1234
…
1234…N
e)
Que indica el número de días de un mes para un año no bisiesto
5. Sentencias de control
Mas ejercicios
•
Escribir un programa que:
2.
a)
b)
c)
d)
e)
f)
Calcule el mínimo, el máximo y la media de una lista de números enteros
positivos introducidos por el usuario. La lista finaliza cuando se introduce un
número negativo.
Solicite al usuario una letra e indique si es una vocal o una consonante.
Solicite al usuario tres números e indique cuál es el mayor
Muestre si un número dado es o no primo
Muestre por pantalla la lista de los 100 primeros números primos
Realice las operaciones suma, resta, multiplicación y división. El programa
muestra un menú inicial:
Programa calculadora
a)
Sumar
b)
Restar
c)
Multiplicar
d)
Dividir
e)
Salir
Una vez elegida la opción, se solicitan dos números y se muestra el resultado. El programa solo finaliza
cuando se elige la opción Salir
6. Funciones y subrutinas
•
Motivación:
•
•
•
•
•
Subrutinas, subprogramas o procedimientos (Sub)
•
•
•
•
Llamados por su nombre
Realizan acciones pero no retornan valores
Claves en programación estructurada
Funciones (Function)
•
•
•
•
Complejidad: división en módulos más pequeños
Localización más simple de errores en código
Permite trabajar a varias personas
Reutilización de código
Invocados como asignación a una variable o cálculo
Realizan acciones aunque lo más importante es que retornan valores (de
diverso tipo, incluso matrices)
En el código debe encontrarse una asignación de valor al nombre de la
función o, en otros lenguajes, una expresión return
Argumentos
6. Funciones y subrutinas
•
Ejercicios
1.
Escribir una función que:
a)
b)
c)
d)
e)
2.
Calcula el doble del número pasado como parámetro
Calcula el volumen de un cubo con lado pasado como
parámetro
Calcula el área de un círculo (parámetro el radio)
Calcula el volumen de un cilindro (parámetros radio y altura);
llamar a la función anterior
Pida un número por pantalla
Escribir un procedimiento para:
a)
b)
Mostrar un mensaje por pantalla (mensaje como parámetro)
Mostrar un menú con 3 opciones
7. Matrices y cadenas
•
Matrices:
Motivación:
•
•
•
•
Utilización
•
•
•
•
Declaración
Definición
Uso
Unidimensionales y multidimensionales
Redimensionamiento
•
•
•
Almacenar múltiples valores con un solo nombre
Series de valores
Valores interrelacionados
Cadenas:
Definición
Funciones de tratamiento de cadenas de string:
•
•
•
Len, Right, Left, Instr, …
7. Matrices y cadenas
Ejercicios
•
Escribir un programa que:
1.
a)
b)
c)
d)
e)
Pide la temperatura media de los doce meses y calcula la temperatura media
del año
Cree una matriz unidimensional de tamaño 10, la rellene con valores
aleatorios enteros comprendidos entre el 1 y el 100 (incluidos) y la imprima
entera por pantalla
Cree una matriz bidimensional de 5x5 enteros, la rellene con valores
aleatorios entre el 1000 y el 2000, imprima la matriz por pantalla y nos diga
los valores mínimos y máximos
Lee las notas obtenidas por los alumnos en matemáticas. Se finaliza cuando
se introduzca un número negativo. No sabemos la cantidad de alumnos
inicialmente. Al final, indicar la nota máxima, mínima, media y número de
alumnos
Tenga una función que recibe como parámetro un array y un elemento. La
función determina si el elemento se encuentra en el array, devolviendo 0 si
no está y 1 si lo está.
7. Matrices y cadenas
Ejercicios
•
Escribir un programa que:
2.
a)
b)
c)
d)
e)
f)
Lea una cadena de caracteres y nos diga su longitud (no utilizar función
longitud de cadena)
Se le pasa una cadena de caracteres como parámetro e imprime la cadena
suprimiendo las vocales
Lea una cadena de caracteres e indique si la cadena es un palíndromo. Esto
es una cadena que se lee igual de derecha a izquierda que al revés (por
ejemplo, dabalearrozalazorraelabad)
Dada un cadena cualquiera, hacer una función que nos responda cuál es la
primera letra y última según el orden alfabético
Cree una cadena de caracteres alfabéticos aleatoria de longitud 10 y muestre
la cantidad de veces que se presenta cada vocal
Separe una cadena solicitada en tres partes: la primera con los 2 primeros
caracteres, la segunda con los 3 caracteres a partir del cuarto y la tercera
con los últimos 4 caracteres. Se deberán mostrar las tres cadenas o un texto
de error si su longitud total es menor que 7
Descargar

Diapositiva 1