Está en la página 1de 87

CURSO DE

PROGRAMACIÓN
PROFESOR: DAVID FABRIZZIO MENA AVILÉS
QUÉ ES PROGRAMACIÓN

SISTEMA NUMÉRICO BINARIO

ALGORITMOS

DISEÑAR EL PROGRAMA
TEMAS
IDENTIFICADORES Y VARIABLES

OPERADORES Y FUNCIONES

SENTENCIAS CONDICIONALES
¿QUÉ ES
PROGRAMACIÓN?
■ La programación es el acto de programar, es
decir, organizar una secuencia de pasos
ordenados a seguir para hacer cierta cosa.
■ En el ámbito de la informática, la programación
refiere a la acción de crear programas o
aplicaciones a través del desarrollo de un código
fuente, que se basa en el conjunto de
instrucciones que sigue el ordenador para
ejecutar un programa.
SISTEMA
NUMÉRICO
BINARIO
■ La mayoría de los procesadores
trabajan en sistema binario.
■ Sistema numérico compuesto por
dos únicos caracteres (0 y 1).
PASOS DE PARA ELABORAR UN
PROGRAMA
CREAR EL
PROGRAMA

Codificación Ejecución
Análisis del Diseño del Corregir
(lenguaje de del
problema algoritmo errores
programación) programa

• Preciso • Correcto
• Definir • Claro
• Finito • Eficiente
LENGUAJES DE PROGRAMACIÓN
ALGORITMO

■ Algoritmo como un grupo de órdenes


consecutivas que presentan una solución a un
problema o tarea.
■ Algunos ejemplos de algoritmos los podemos
encontrar en las matemáticas (como el algoritmo
para resolver una multiplicación) y en los
manuales de usuario de un aparato (como una
lavadora o una impresora).
DISEÑAR UN ALGORITMO CON DIAGRAMA DE FLUJO
DISEÑAR UN
ALGORITMO
CON
PSEUDOCÓDIG
O
PROGRAMACIÓN
VARIABLES
Identificador: Es un nombre que sirve para identificar las entidades del programa (constantes,
variables y funciones). Pueden ser combinaciones de letras y números.
Ejemplos:
■ a
■ cont
■ contador
■ fila12
■ num_fila
■ numFila
■ printf
■ If
■ double
Concepto de Variable: Es un espacio de memoria reservado para almacenar un valor.
Almacena un único valor a la vez.
Al declarar una variable se debe tener en cuenta el tipo de la variable, su nombre y valor
inicial.
El modelo para declara variables es el siguiente:
1. tipo_var nombre_var; -> int miEntero;
2. tipo_var nombre_var = valor_inicial; -> int miEntero = 0;
3. tipo_var nombre_var1, nombre_var2; -> int miEntero, tuEntero;
TIPOS DE
DATOS
■ Declarar enteros:
int a=2;

Ejemplos de ■ Declarar flotantes:


float pared=5,2;
declaración ■ Declarar caracteres (letras):

de variables char letra=‘a’;


■ Declarar cadena de caracteres (palabras):
char nombre [7]=“Isabel”
COMENTARIO EN LENGUAJE C

/*comentario de varias líneas*/ //comentario de una línea


CONSTANTES
Datos inalterables o valores ya conocidos con anterioridad. Similar a las variables, pero este
valor no se puede cambiar en el programa.
La estructura para declarar una constante es la siguiente:
1. #define nombre_c valor_c - > #define PI 3,1416 (Inicio, final)
2. const tipo_c nombre_c = valor_c; -> const float PI = 3.1416; (dentro)

EJEMPLOS:
#define numero_meses 12
const int dedos = 5;
Expresiones
■ Es una combinación de operadores y símbolos que especifican un valor de manera
implícita y por lo general se guarda en una variable.

Ejemplos:
a = b*c;
d = e%f;
If (a==d){ }
If (a!=d){ }
If (a==b && c==d){ }
OPERADOR
ES
ARITMÉTIC
OS
OPERADORE
S
RELACIONA
LES
OPERADOR
ES LÓGICOS
OPERADOR
ES DE
ASIGNACIÓ
N
■ Las funciones son un conjunto de instrucciones
que realizan una tarea específica. Estas
funciones las podemos añadir mediante

FUNCIONE diferentes librerías o las podemos crear


nosotros mismo.

S
■ Cuando creamos la función se le debe asignar
el nombre y el conjunto de instrucciones que
debe realizar. Una función puede o no devolver
un valor.
Sintaxis para la creación de funciones
■ Función que no devuelve nada:
void nombre_func (tipo_dato1 dato1, tipo_dato2 dato2) {

sentencias;

return 0;
}

■ Función que devuelve datos:


tipo_datos nombre_func (tipo_dato1 dato1, tipo_dato2 dato2) {

sentencias;

return datos;
}
LLAMADA A UNA FUNCIÓN
■ Función que no devuelve nada:
– Al inicio (declaración):
void nombre_func (tipo_dato1 dato1, tipo_dato2 dato2);

– En el código:
nombre_func (dato1, dato2);

■ Función que devuelve datos:


– Al inicio (declaración):
tipo_datos nombre_func (tipo_dato1 dato1, tipo_dato2 dato2);

– En el código:
nombre_var = nombre_func (dato1, dato2);
EJEMPLO
DE
FUNCIONE
S
INCLUIR LIBRERÍAS
Junto con los compiladores de C y C++, se incluyen ciertos archivos llamados bibliotecas
mas comúnmente librerías. Las bibliotecas contienen el código objeto de muchos programas
que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar
números, realizar funciones matemáticas, etc.
Las bibliotecas están clasificadas por el tipo de trabajos que hacen, hay bibliotecas de
entrada y salida, matemáticas, de manejo de memoria, de manejo de textos y como
imaginarás existen muchísimas librerías disponibles y todas con una función especifica.
Sintaxis para inclusión de librerías:
#include <nombre_lib.h>
Ejemplo:
#include <math.h>
ESTRUCTURA DE UN PROGRAMA
1. Incluir librerías.
2. Definir constantes.
3. Definir tipo de datos propios.
4. Definir prototipos de funciones (declararlas).
5. Inicializar programa principal: main () {, void main (){, void main (void) {.
6. Declarar e inicializar variables locales.
7. Sentencias (todas las instrucciones que se deben realizar en el programa principal).
8. Finalizar programa: return 0; }
9. Definir funciones.
EJEMPLO
DE UNA
ESTRUCTUR
A DE
PROGRAMA
FUNCIÓN printf
Esta función nos sirve para transportar datos desde la memoria a la pantalla. En general, podemos
mostrar texto que ingresemos o el valor de alguna variable que tengamos en nuestro programa.
Se encuentra en la biblioteca <stdio.h>
Sintaxis para el uso de la función:
■ Para imprimir solo texto:
printf (“texto..”); -> printf (“Hola Mundo”);
■ Para imprimir el valor de alguna variable:
printf (“Mi variable es: especificador_formato_var”, variable); -> printf (“Mi numero es: %f”,
nombre);
Ejemplo:
ESPECIFICADO
R DE
FORMATO DE
LAS
VARIABLES
SECUENCIAS DE ESCAPE
FUNCIÓN scanf
■ La función scanf nos permite receptar los datos que el usuario ingresa y los almacena en distintas
variables.
■ Se encuentra en la biblioteca <stdio.h>.
■ Puede almacenar varias variables con un solo llamado.
■ Cuando se usa este tipo de función el sistema espera a que se ingrese desde el teclado el argumento o
lista de argumentos pedidos.
■ Antes de utilizar un scanf, hay que utilizar un printf para indicar al usuario que debe ingresar un dato.
Sintaxis para usar la función scanf:
scanf (“especificador_formato_var”, &variable); -> scanf (“%d”, &a);
scanf (“especificador_formato_var1 especificador_formato var2”, &variable1, &variable2); ->
scanf (“%d %f”, &b, &c);

El símbolo “&” nos indica el destino de almacenamiento de las variables.


EJERCICIOS CON printf y scanf
1. Transformar en código el pseudocódigo que se muestra a continuación, correspondiente
al cálculo del volumen de un cilindro dados su altura y diámetro.
2. Transformar en código el pseudocódigo que se muestra a continuación, correspondiente a
proporcionar el precio medio de un producto, calculado a partir del precio del mismo en tres
establecimientos distintos. Los precios para el cálculo son introducidos por el usuario.

3. Crea un programa que pida al usuario el radio de una esfera y muestre por pantalla el
volumen de la esfera. Si no conoces la fórmula de cálculo, busca información al respecto en
internet.
CARACTERES
■ Los caracteres son valores alfanuméricos que pueden ser letras
números y caracteres de control. Cada valor se representa por un
valor numérico.
■ Tamaño de un carácter: 1 byte (8 bits) -> 127 letras se pueden
representar pues el último bit indica el signo del número ASCII.

Ejemplos:
A se representa por el 65.
O se representa por el 48.
Declaración:
char nombre = ‘letra’; -> valor numérico entre 0 y 127.
Unsigned char letra2; -> valor numérico entre 0 y 255.
Ejemplo:
char letra = ‘a’;
char nombre[5] = “David”;

Especificador de formato:
%c -> char
-> unsigned char
NÚMEROS ENTEROS
Puede almacenar un caracter (char). El rango de valores variará
dependiendo del tipo de entero. Pudiendo almacenar valores negativos
positivos y negativos al especificar si el tipo de variable tiene signo o no.
Declaración:
(signo) (longitud) int nombre = entero;

Ejemplos:
– int num1 = 23;
– short int num2 = 33;
– unsigned long int num3 = 35;
Especificador de formato:
– int -> %d
– long int -> %ld
– short int -> %hd
– unsigned int -> %u
– unsigned short int -> %hu
– unsigned long int -> %lu
NÚMEROS REALES

Especificadores de formato:
– float -> %f
-> %e
– double -> %lf
-> %le
– long double -> %Lf
-> %Le
CONVERSIONES
El lenguaje C nos permite asignar una variable o expresión de un tipo de dato determinado
a una variable de otro tipo de dato diferente. Existen dos tipos de conversiones de datos:
Implícita: El compilador hace la conversión por nosotros.
float f_num = 5; (5 es entero).
Explícita: Necesitamos indicar el tipo de dato del que transformamos y al que vamos a
transformar.
(tipo de dato deseado) expresión a convertir.
Ejemplo:
int i_num = 5;
float f_num = (float) i_num;
Conversión de caracter a entero:
int num;
char car = ‘1’;
num = (int) car; -> num = 4

Conversión de entero a caracter: Usa el código ASCII.


int num = 65;
char letra;
letra = (char) num; -> letra = A

Real a entero: Solo se coge la parte entera del número decimal.


■ También llamadas sentencias de selección.
■ Permiten efectuar alguna comprobación lógica
para seleccionar el grupo de sentencias que se
ejecutará a continuación, en función del
SENTENCIAS cumplimiento de la condición.
■ Las sentencias condicionales que nos permite el
CONDICIONA lenguaje C son:
– if
LES – if – else
– if – else – if
– switch
Variante if
■ Es la sentencia condicional más sencilla, la cual nos
permite ejecutar un grupo de sentencias si una
determinada condición o expresión lógica es cierta.
■ Las sentencias o instrucciones a ejecutarse cuando se
cumple la condición pueden ser de cualquier tipo.
■ Si solo hay una sentencia o instrucción dentro del if, las
llaves son opcionales.
Sintaxis para la implementación de la sentencia if:
If (condición)
{
sentencias a ejecutar si la condición es cierto;
}

Diagrama de flujo de la sentencia if:


EJEMPLOS DE LA SENTENCIA IF
1. Ejemplo con una sola sentencia, es decir que no se usan las llaves.
2. Ejemplo con varias sentencias, es decir es obligatorio usar las llaves.
EJERCICIOS
1. Realizar un programa en el que se pida al usuario un nombre de usuario válido, se comprobará que
así lo sea y si es válido se procederá a pedir el código de acceso (numérico). Si se llega a validar tanto
clave como nombre de usuario entonces se imprimirá el mensaje: “Usted ha accedido al Sistema”.

2. Pedir al usuario que introduzca un número del 1 al 7. En primer lugar, se debe verificar si el número
está dentro del rango pedido. Si es así, se imprimirá si el número es primo o no.

3. Pedir al usuario que ingrese dos números y usando únicamente sentencias if, compararlos y mostrar
en la pantalla lo siguiente: “El resultado es: 4>3”, “4=4”, “3<4”.

4. En el ejercicio anterior añadir una restricción para solo recibir números positivos.

5. Pedir una letra al usuario y si es vocal imprimir qué vocal es de la siguiente forma: “Usted
introdujo la vocal …”
Variante if-else

■ Es una sentencia condicional que nos permite declarar


una serie de instrucciones tanto para cuando una
condición es verdadera como cuando es falsa.
■ Las sentencias e instrucciones pueden ser de cualquier
tipo.
■ Si solo hay una sentencia dentro del if y/o else, el uso de
llaves es opcional.
Sintaxis para la implementación de la sentencia:
If (condición){
sentencias para cuando la condición es cierta;
} else {
sentencias para cuando la condición es falsa;
}

Diagrama de flujo de la sentencia


EJEMPLOS DE LA SENTENCIA
1. Ejemplo con una sola sentencia, es decir que no se usan las llaves.
2. Ejemplo con varias sentencias, es decir es obligatorio usar las llaves.
Variante if-else-if

■ Es una sentencia condicional que nos permite declarar


una serie de instrucciones para varias condiciones en la
misma sentencia.
■ Las sentencias e instrucciones pueden ser de cualquier
tipo.
■ Si solo hay una sentencia dentro del if, else if y/o else, el
uso de llaves es opcional.
■ Sintaxis para la implementación de la sentencia:
if (condición1){
sentencias para cuando la condición1 es cierta;
} else if (condición2){
sentencias para cuando la condición2 es cierta;
} else if (condición3){
sentencias para cuando la condición3 es cierta;
} else {
sentencias a ejecutar si todas las condiciones anteriores son falsa;
}
Diagrama de flujo de la sentencia:
EJEMPLO
EJERCICIOS
1. Escriba un programa que lea por teclado el valor numérico de un día y un mes, y muestre
la estación del año a que corresponde dicha fecha. Si el usuario introduce una fecha
incorrecta, el programa muestra: Error!!! Fecha incorrecta.
Suponga que todos los meses tienen 31 días. Recuerde que la primavera comienza el 21 de
marzo, el verano el 21 de junio, el otoño el 21 de septiembre y el invierno el 21 de
diciembre.
Ejemplos de ejecución (en negrita, datos ingresados por teclado):
Introduzca dia y mes (separados por un espacio): -2 3
Error!!! Fecha incorrecta
Introduzca dia y mes (separados por un espacio): 12 13
Error!!! Fecha incorrecta
Introduzca dia y mes (separados por un espacio): 3 12
El 03/12 estamos en la estacion de otonyo
2. Mostar un menú donde las opciones sean “Equilátero”, “Isósceles” y “Escaleno”, pida una
opción, verificar si la opción introducida es correcta (es alguna de las opciones dadas) y entonces
pida los datos necesarios y calcule el perímetro del triángulo seleccionado. Finalmente mostrar el
resultado.
Para saber la fórmula para el cálculo utilice internet.

3. Pedir al usuario que ingrese tres números distintos, y mostrarlos en la pantalla de mayor a menor
en líneas distintas. Considerar que el usuario siempre va a introducir números diferentes.

4. Crear un programa que permita al usuario elegir un candidato por el cual votar. Las posibilidades
son: candidato A por el partido rojo, candidato B por el partido verde, candidato C por el partido
azul. Crear un menú en el que se muestre al usuario el nombre de los candidatos que puede elegir
para las opciones A,B ó C. Según el candidato elegido (A, B ó C) se le debe imprimir el mensaje
“Usted ha votado por el partido [color que corresponda al candidato elegido]”. Si el usuario ingresa
una opción que no corresponde a ninguno de los candidatos disponibles, indicar “Opción errónea”.
■ Es una sentencia condicional que
nos permite declarar una serie de
Sentencia instrucciones para varias
condiciones en la misma sentencia.
switch ■ Las sentencias e instrucciones
pueden ser de cualquier tipo.
Sintaxis para la implementación de la sentencia:
switch (selector) {
case etiqueta1: sentencias caso etiqueta1;
break;
case etiqueta2: sentencias caso etiqueta2;
break;
.
.
.
case etiquetaN: sentencias caso etiequetaN;
break;
default: sentencias si todas las condiciones anteriores son falsas;
}
Diagrama de flujo de la sentencia:
EJEMPLO
EJERCICIOS
1. Pedir un número del 1 al 7 al usuario y escribir en la pantalla el día de la semana que el
número representa.

2. Hacer un programa que pida al usuario un numero entero positivo de 1 o 2 dígitos y


determinar si sus dígitos son primos. Imprimir en la pantalla: “El numero _ es primo” para
cualquiera de los dos dígitos. Caso contrario se imprime que el número no es primo.

3. Pedir un valor en metros al usuario. Luego mostrar un menú con opciones que indiquen
las unidades a las cuales se puede convertir (Km, mm, cm….) mínimo 5 opciones. Luego
receptar el número de opción elegida y hacer la operación correspondiente. Imprimir el
resultado.
ERRORES COMUNES
■ Uso del operador de asignación en lugar del operador relacional de igualdad en la
condición del if.
■ Omisión de llaves en las sentencias condicionales.
■ Uso de la variante if en lugar de
la variante if −else−if.
■ Orden lógico de las
condiciones de la variante
if −else−if.
SENTENCIAS ITERATIVAS
■ Iterar significa repetir algo.
■ Pueden ser lazos, bucles o ciclos.
■ Se usan para ejecutar un conjunto de instrucciones tantas veces como
lo permita una condición de parada.
■ Los lazos permitidos en lenguaje C son:
– for -> cuando se conoce exactamente el número de iteraciones.
– while -> cuando no se conoce exactamente el número de
iteraciones.
– do-while
Lazo for
■ El lazo for es una sentencia iterativa que se repite hasta que cierta condición se cumpla.
■ Esta sentencia se usa cuando se conoce exactamente la cantidad de iteraciones del bucle.

Componentes:
■ Inicialización: Es la asignación de un valor inicial a la variable de control del lazo.
■ Comparación: Es una expresión lógica (comparación) sobre la variable de control que
actúa como la condición del lazo y determina la cantidad de iteraciones del mismo. Si es
cierta se ejecutan las sentencias del lazo, caso contrario se finaliza.
■ Actualización: Expresión que modifica la variable de control del bucle después de cada
ejecución. La actualización generalmente consiste en incrementar o decrementar la
variable de control.
Sintaxis de la sentencia:
for (inicialización; comparación; actualización){
sentencias a ejecutar si la comparación es cierta;
}

Diagrama de flujo de la sentencia:


EJEMPLO
Consideraciones:
■ Al igual que en las sentencias condicionales, si el cuerpo del for tiene más de una
sentencia, es obligatorio usar las llaves. Caso contrario son opcionales.
■ Las sentencias dentro del for pueden ser de cualquier tipo.
■ La actualización es una parte esencial de la sentencia, ya que si no se la declara
correctamente, el lazo podría repetirse infinitamente.
■ Se puede omitir alguna o todas las partes de la estructura de control de la sentencia. En
este caso seguirá siendo necesario poner el punto y coma para separar sus partes.
■ Se puede incluir más de una sentencia de asignación tanto en la inicialización como en
la actualización.

■ Existen formas abreviadas muy utilizadas para el incremento/decremento en la


actualización:
– i++
– i+=1
EJERCICIOS
1. Dado un número ingresado por el usuario se debe calcular el factorial del mismo y
mostrar en la pantalla.

2. Pedir al usuario que ingrese un número inicial y un número final. Sumar todos lo
números y mostrar los resultados. Hacer lo mismo para los números pares.

3. Crear un programa que calcule el promedio de las notas de un grupo de estudiantes. El


programa debe pedir al principio que el profesor ingrese el número de estudiantes y
luego con la ayuda de un lazo for irá pidiendo una por una las notas. Finalmente se
mostrará el promedio en pantalla.
4. Transformar el siguiente pseudocódigo en un programa que muestre la tabla de
multiplicar de un número del 1 al 10
Lazo while

■ La sentencia iterativa while se utiliza cuando no se conoce con


exactitud la cantidad de iteraciones del bucle.
■ La ejecución de una sentencia while consiste en evaluar primero la
condición. Si es cierta, se ejecuta el conjunto de sentencias del bucle
y se vuelve a evaluar la condición. Este proceso se repite hasta que la
condición es falsa.
■ Alguna de las sentencias del bucle debe modificar alguna de las
variables de la condición. Si no es así, el bucle no acabará nunca
(bucle infinito).
Sintaxis de la sentencia:
while (condición){
sentencias;
}

Diagrama de flujo de la sentencia:


EJEMPLO
CONSIDERACIONES

■ Igual que para las sentencias condicionales y el bucle for, si el cuerpo


del while tiene más de una sentencia es obligatorio utilizar las llaves.
Caso contrario las llaves son opcionales.
■ Además, el tipo de sentencia puede ser de cualquier tipo (asignación,
llamada a una función, sentencia condicional o iterativa).
EJERCICIOS
1. Una ONG tiene puntos de reparto de vacunas que se pretende funcionen de la siguiente
manera. Cada día, empezar con 1000 vacunas disponibles y a través de un programa
que controla las entregas avisar si el inventario baja de 200 unidades. El pseudocódigo
para el programa es el indicado a continuación. Razonar la lógica de este pseudocódigo
y crear un programa a partir de él.

2. Pedir al usuario que ingrese un número inicial y un número final. Sumar todos lo
números y mostrar los resultados. Hacer lo mismo para los números pares.
3. Realizar el programa para mostrar la tablas de multiplicar con la sentencia while,
añadiendo una clave de ingreso con el mismo lazo while antes de empezar el progama.
Cada vez que el usuario ingrese mal la clave, volvera a pedirse la clsve y el programa no
avanzará hasta introducir la contraseña correcta.

4. Al programa anterior añadir un paso de finalización del programa, en el cual se pida que
se presione la tecla enter para terminar el programa.
Sentencia do-
while
■ La sentencia iterativa do-
while se utiliza cuando no se
conoce con exactitud la
cantidad de iteraciones del
bucle y el bucle se debe
ejecutar al menos una vez.
■ Prácticamente esta sentencia
es igual que un while con la
única diferencia del momento
en el que se comprueba la
condición.
Sintaxis para la sentencia:
do{
Sentencias a ejecutar si la condición es cierta;
} while (condición);
EJEMPLO
EJERCICIOS
1. Escribir un programa que lea indefinidamente los números ingresados por el usuario
hasta que ingrese un 0. Finalmente se debe mostrar en la pantalla la suma de todos los
números leídos.
2. Transformar en código el pseudocódigo que se muestra a continuación, relativo a un
programa que muestre todos los enteros comprendidos entre un número definido por el
usuario y 100, usando un bucle do … while.
Sentencias de saltos incondicionales
Break:
La sentencia break termina completamente bucles for, while, do while y condicionales
switch.
Continue:
La sentencia continue termina una iteración en bucles for, while y do while. No puede ser
usado en el condicional switch.

También podría gustarte