Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
edu/~avellido
Fonaments dInformtica
Semana 4. Composiciones iterativas
Estructura alternativa if
Sintaxis (caso simple):
Leyes de De Morgan
!(a && b) == (!a || !b) !(a || b) == (!a && !b)
Ej.: !(a < 10 || a > 20) == (!(a < 10) && !(a > 20)) == (a >= 10 && a <= 20)
Composiciones alternativas
Estructura alternativa switch
La composicin alternativa switch tiene la siguiente sintaxis (en su forma ms simple): switch (<expresion>) { case <valor1>: <sentencia1> break; case <valor2>: <sentencia2> break; ... case <valorn>: <sentencian> break; [default: <sentenciad>] }
switch (<expresion>) { case <valor1>: {<sentencia1_1> ... break;} ... case <valorn>: {<sentencian_1> ... break;} }
Composiciones alternativas
Estructura alternativa switch (3)
Un ejemplo. Poniendo notas char nota; cin >> nota; switch (nota) { case S: cout << suspenso << endl; break; case A: cout << aprobado << endl; break; case N: cout << notable <<endl; break; case E: cout << excelente << endl; break; }
La composicin iterativa while tiene la siguiente sintaxis: while (<expresion E>) { <bloque de instrucciones B> }
Composiciones iterativas
Efecto de repeticin / bucle: if (E) {B} if (E) {B} ... if (E) {B} (hasta que !E) Observaciones: La condicin es una expresin booleana Las llaves no son necesarias si slo hay una instruccin
Composiciones iterativas
Estructura iterativa while (ej1)
La tabla de multiplicar del 4 ( papel y boli ), vista por pantalla como:
4 * 1 = 4 ... etc.
#include <iostream> using namespace std; int main(void){ int num1 = 1; while (num1 <= 10) { cout << "4 * " << num1 << " = " << 4*num1 << endl; num1++; } ... }
Composiciones iterativas
Estructura iterativa while (ej2)
Ejemplo: Clculo del factorial de un entero positivo n introducido por teclado
int n; cin >> n; int f = 1; while (n>1) {f = f*n; n--;} cout << f << endl; // Observad el caso n=0, n=1
Composiciones iterativas
Estructura iterativa while (ej3)
Ejemplo: Dado un entero por teclado, invertir el orden de sus cifras y sacar el nmero invertido por pantalla (bases numricas: base 10) int n; cin >> n; while(n!=0) { cout << n%10; n=n/10; }
Con la siguiente sintaxis: while (<expresion E1>) { <bloque de instrucciones B> while (<expresion E2>) { ... } ... }