Bloque 3.2 - Medialab Prado

Anuncio
Bloque 3.2
Operadores aritméticos
●
Suma <+> : x + y
●
Resta <-> : x – y
●
Multiplicación <*>: x * y
●
División </> : x / y
●
Módulo <%> : x % y (resto de la división
●
●
Si los operandos son enteros tipo del resultado
es entero. Si hay un real el resultado es tipo
real
Expresiones aritméticas
Ejemplo:
4
5x ⋅z10y6
3
Las expresiones se evaluan de izquierda a derecha
Las multiplicaciones y divisiones prevalecen sobre las sumas y
restas
Para especificar el orden de operación se utilizán paréntesis
Operadores lógicos y relacionales
Operadores relacionales
- “ == “ : ¿es igual?
- “ != “ : ¿es diferente?
- “ < “ : ¿es menor?
- “ > “ : ¿es mayor?
- “ <= “ : ¿es menor o igual?
- “ >= ” : ¿es mayor o igual?
Operadores lógicos
- ” ! “ : NOT : Negación lógica -> cambia el valor booleano
- “ && ”: AND : Es un “y” lógico -> verdad si ambos son verdad
- “ || ” : OR : Es on “o” inclusivo -> verdad si al menos uno es verdad
- “ ^ ” : XOR : Es un “o” exclusivo -> verdad si ambos son diferentes
Ejemplos
Números x de 0 a 10:
(x>=0) && (x<=10)
Números x fuera del intervalo [0,10]:
(x<0) || (x>10)
Estructuras de control
Estructuras condicionales
- if
- else
- encadenamiento y estructuras anidadas
- switch
Estructuras repetitivas
- El bucle while
- El bucle for
- Bucles anidados
Programación estructurada
IDEA PRINCIPAL:
La estructura de control de un programa sólo debe tener un
punto de entrada y un punto de salida
Este tipo de estructura es predecible y disciplinada, no salta
de un lado a otro de forma impredecible.
Si no, será muy complicado depurar un programa y probarlo
If
La sentencia if nos permite elegir
si se ejecuta o no un bloque de
instrucciones.
Sintaxis
if (condición)
instruccion1();
if (condición) {
instruccion2();
}
Consideraciones acerca del uso de
la sentencia if
Un error común:
- Olvidar los paréntesis al poner la
condición del if es un
error sintáctico (los paréntesis son
necesarios)
if (condición);
sentencia;
es interpretado como
- Confundir el operador de
comparación == con el operador de
asignación = puede producir errores
inesperados
- Los operadores de comparación ==, !
=, <= y >= han de
escribirse sin espacios.
- => y =< no son operadores válidos en
C.
if (condición)
; // Sentencia vacía
sentencia;
Ejercicio:
Pedir un número al
usuario e imprimirlo
sólo si es mayor de
cero
else
Permite ejecutar un trozo de
código si una condición se
cumple y otro si no se cumple
if (condición) {
bloque3
}
else {
bloque4
}
Encadenamiento
Podemos encadenar muchos if – else para ver cuándo se cumplen unas
condiciones específicas:
#include <stdio.h>
void main () {
//libreria de entrada/salida
float nota;
printf(“Déme una nota: ”); //imprime por pantalla
scanf(“%f”,&nota);
//recoge lo que escribe un usuario
if (nota>=9) {
printf(“Sobresaliente”);
}
else if (nota>=7) {
printf(“Notable”);
}
else if (nota>=5) {
printf(“Aprobado”);
}
else {
printf(“Suspenso”);
}
}
If anidados
Los if se pueden ir anidando, es decir, incluir más sentencias if
dentro de los trozos de código a ejecutar cuando se cumplen las
condiciones
#include <stdio.h>
void main() {
float a,b;
printf(“Escriba un número a dividir y un divisor”);
scanf (“%f %f”,&a,&b);
if (b==0) {
printf(“La solución es infinito”);
} else {
if (a==0) {
printf(“La solución es cero”);
} else {
printf(“La solución es &f, a/b”);
}
}
}
switch
Evaluamos una expresión o variable y en caso de que valga un valor
determinado ejecutamos un trozo de código diferente
switch (expresión) {
case expr_cte1:
sentencia1;
case expr_cte2:
sentencia2;
...
case expr_cteN:
sentenciaN;
default:
sentencia;
}
Estructuras repetitivas – for y while Se utilizan cuando tenemos que repetir un trozo de código
muchas veces.
En vez de escribir las mismas lineas muchas veces las
metemos en un bucle de repetición.
El bucle de repetición se ejecuta hasta que se deja de
cumplir una condición
El bucle for
El bucle se ejecuta hasta que una
condición se deja de cumplir
Sólo se puede utilizar cuando
sabemos el número de iteraciones
de nuestro bucle
Ejemplo:
int j=0
for (int i=0; i < 100; i++) {
j=j+i
}
¿Qué hace este código?
while
Ejemplo:
Sumar una serie de números
hasta que el usuario introduzca un cero
#include <stdio.h>
void main() {
double suma; // Suma de los datos
double n; // Número leído desde el teclado
suma = 0; // Inicialización de la suma
printf (“Introduzca un número (0 para terminar)”);
scanf (“%f”, &n);
while (n!=0) {
suma = suma + n;
printf (“Introduzca un número (0 para terminar): ”);
scanf (“%f”, &n);
}
printf(“Suma total = %lf\n”, suma);
}
Depuración
- Depuramos un código cuando no tiene errores pero no da los resultados que
nosotros esperamos.
- Cuando los programas son largos o complicados el tiempo de depuración
supera en muchas veces el tiempo de edición.
- Los métodos más inmediatos de depuración:
- ejecutando el código paso a paso
- poniendo trazas en el código
- mediante ventanas de inspección
Descargar