INFORMÁTICA INDUSTRIAL - UC3Mocw.uc3m.es/ingenieria-de-sistemas-y-automatica/inform... · 2018. 2....

Post on 21-Aug-2020

12 views 0 download

Transcript of INFORMÁTICA INDUSTRIAL - UC3Mocw.uc3m.es/ingenieria-de-sistemas-y-automatica/inform... · 2018. 2....

M.Abderrahim,A.Castro,J.C.Cas3lloDepartamentodeIngenieríadeSistemasyAutomá3ca

PROGRAMACIÓNBÁSICAC++(II)

INFORMÁTICAINDUSTRIAL

6.FlujodeControl

FlujodeControl

Paracadaestudiante

Hacer

Mientraslaasignaturanoestéaprobada

Estudiar

Hacerelexamen

Sinoestásdeacuerdoconlacalificación ➭"

Irarevisión

Operadoresparaelflujodecontrol

•  OperadoresdeRelación<><=>=

•  OperadoresdeIgualdad/Desigualdad==(==noes=,queesasignación)!=

•  Operadoreslógicos•  &&||!•  Todosdevuelven:

–  0silacondiciónesfalsa–  1cuandolacondiciónesválida

•  Engeneral,cualquiernúmerodiferentedecerosignifica“true”(salida“1”)

if if(expresión) sentencia1; siguientessentencias;

–  Sisecumple“expresión”(salidalógicadiferentedecero),seejecuta“sentencia1”(yluegolassiguientessentencias).

–  Sinosecumple“expresión”(salidalógicaescero),seejecutandirectamentelassiguientessentencias,perono“sentencia1”.

ifvoidmain(){

inti=0;if(i=1) cout<<"erroreneloperadordeigualdad";

}

ifvoidmain(){

inti=0;if(i==1) cout<<"erroreneloperadordeigualdad";

}

if-else

if(expresión)sentencia1;elsesentencia2;siguientessentencias;

if-else

Si“expresión”esverdadero,seejecuta“sentencia1”.

Sino,seejecutasentencia2.Ysiempredepués,seejecutanlassiguentessentencias.

if-else#include<iostream>#include<math.h>usingnamespacestd;intmain(){

doublenumero;cin>>numero;if(numero<0)cout<<"Numeronega3vo"<<endl;else{cout<<"Numeroposi3vo"<<endl;cout<<"Laraízcuadradaes"<<sqrt(numero)<<endl;}return0;

}

If-elseanidado#include<iostream>usingnamespacestd;intmain(){

inti,j;i=3;j=-3;if(i<0)if(j<0) cout<<"ijmenoresque0"<<endl;else cout<<"inoesmenorquecero"<<endl;return0;

}

#include <iostream> using namespace std; int main() {

int i,j; i=3; j=-3; if(i<0){ if(j<0) cout<<"i j menores que 0"<<endl; }else cout<<"i no es menor que cero"<<endl; retun 0;

}

If-elseanidadoif(exp1){if(exp2){sentencia1;}else{sentencia2;}}else{sentencia3;}

If-elseanidado#include<iostream>usingnamespacestd;intmain(){

inti,j;i=3;j=-3;if(i<0){if(j<0)cout<<"ijmenoresque0"<<endl;elsecout<<"jnoesmenorquecero,aunqueisílosea"<<endl;}elsecout<<"inoesmenorquecero"<<endl;return0;

}

If-elseanidadoif(exp1){sentencia1;}if(exp2){sentencia2;}else{

sentencia3;}

Lasentencia“else”estáasociadaconel“if”máscercano

while

•  Siqueremosejecutarsentenciasquedependendeunacondición

while(expresión){

sentencia1;}

while

while

for(exp1;exp2;exp3){statement1;

}

expresión1;while(expresión2){sentencia1;expresión3;

}

Seejecutadesdeelprincipio

Encadaiteración,severificaparadecidirejecutaronounanuevaiteración

Seejecutaencadaiteración

for

for

•  Elusocomúnde“for”esenbuclesconunnúmeroconocidodeiteracionesinta[10];for(i=0;i<10;++i){ cout<<“elemento”<<““<<i<<“es”<<““<<a[i]<<endl;

}

sentencias

test

for#include<iostream>usingnamespacestd;intmain(){

inti,j;for(i=0,j=0;i<5&&j<20;i++,j+=2)cout<<"ies"<<i<<"jes"<<j<<endl;return0;

}

do-while•  Essimilara“while”,peroseu3lizacuandonecesitamosejecutarunconjuntodeinstruccionesporlomenosunavez(inclusocuandolaexpresiónesfalsa

do{sentencia1;}while(expresión);

do-while#include<iostream>usingnamespacestd;intmain(){

inti=0;do{i+=1;}while(i<0);cout<<"Elvalorfinaldeies"<<i<<endl;return0;

}

“break”y“con3nue”

•  “break”causalasalidadeunbucleanidado(interno)

while(1){cin>>x;if(x<0.0)break;elsecout<<"raizcuadrada"<<sqrt(x)<<endl;

}

“break”y“con3nue”

•  con+nueinterrumpelaiteraciónactualdelbuclealasiguienteiteración

for(i=0;i<1000;i++){c=getchar();if('0'<=c&&c<='9') con3nue;

}

•  Soloseu3lizaconfor,whileydo-while

breakandcon3nue

#include<iostream>usingnamespacestd;intmain(){

inti,j=0;for(i=0;i<5;i++){cout<<"ies"<<i<<"jes"<<j<<endl;if(j>1) break;j++;//j+=1;oj=j+1;}return0;

}

breakandcon3nue

#include<iostream>usingnamespacestd;intmain(){

inti,j=0;for(i=0;i<5;i++){cout<<"ies"<<i<<"jes"<<j<<endl;if(j>1) con3nue;j++;//j+=1;oj=j+1;}return0;

}

switch

•  Generalizaelusodemúl3plessentencias“if-else”

•  Normalmenteseu3lizacuandoexistenvariasopciones

•  Verificaychequeaelvalordeunavariableintroducida,permi3endoademásvalorespordefecto.

switchswitch(c){case'a':

ints1;break;

case'b':ints2;

case'c':ints3;

break;default:ints4;

}

switch(c){case´a´: ints1; break;case´b´: ints2;case´c´: ints3; break;default: ints4;}

switch

•  Es|picoponer“break”alfinaldecadacasoparaevitarentrarenelsiguiente.

•  Esmuyu3lparamenúsconselección(“Escribe1paracalcularlasuma,2paracalcularlaresta,…”).

M.Abderrahim,A.Castro,J.C.Cas3lloDepartamentodeIngenieríadeSistemasyAutomá3ca

PROGRAMACIÓNBÁSICAC++(II)

INFORMÁTICAINDUSTRIAL