Operadores unários de incremento/decremento. Ciclo for



Documentos relacionados
LINGUAGEM C. Estrutura básica de um programa

INTRODUÇÃO À LINGUAGEM C++

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Estruturas de repetição (Ciclos)

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Linguagem C Funções definidas pelo usuário. Lógica de Programação

Introdução à Programação

7. Estrutura de Decisão

Algoritmos e Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

compreender a importância de cada estrutura de controle disponível na Linguagem C;

Elementos de programação em C

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

Convertendo Algoritmos para a Linguagem C

Programação: Estruturas de seleção

9 Comandos condicionais

ATENÇÃO!!! Rui Morgado - TLP 2

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

insfcanceof new public switch transient while byte continue extends for int null

A linguagem C oferece quatro estruturas de decisão: if, if-else, switch e o operador condicional.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Introdução a Computação

O COMPUTADOR. Introdução à Computação

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

Instruções condicionais. Instruções de repetição. Programa simples. Se fizeres barulho então apanhas um estalo!!!! Se condição então acção.

Prof. Vania Gimenez.Notas de aula Lógica de programação- Este material não substitui os livros indicados no site no link bibliografia.

Linguagem de Programação C

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Linguagem de Programação I

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Estrutura de Dados. Prof. Gustavo Willam Pereira. Créditos: Profa. Juliana Pinheiro Campos

Estruturas de Controle em PHP

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

Variáveis e estruturas de controlo. Introdução à Programação André L. Santos

Programação: Tipos, Variáveis e Expressões

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Java Como Programar, 8/E

Programando em C++ Histórico da Linguagem C

Programação por Objectos. Java

Testando e Comparando Valores

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Programação científica C++

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Curso C: Controle de Fluxo

GFM015 Introdução à Computação Linguagem C / Introdução à Modularização de Programas (uso de subprogramas)

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

Técnicas de Programação I

Module Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada

Estrutura Condicional em Java

Introdução à Programação

José Romildo Malaquias

Curso Prático de C++

Conceitos básicos da linguagem C

Q1 Q2 Q3 Nota. Departamento de Informática - PUC-Rio INF 1005 Programação I P2 20/10/2010. Aluno: Exemplo (apenas um exemplo!):

Apresentar os conceitos básicos e as estruturas de linguagem relacionadas à tomada de decisão ofertadas pela linguagem C, tais como:

1 - INTRODUÇÃO: O QUE É C?

Programação Estruturada I

Técnicas de Programação I

Definição de Programas de Computadores e Linguagem de Programação de Comutadores

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Tabela ASCII de caracteres de controle

A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

LTP-IV. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Laboratório de Banco de Dados II Aula 1. Stored Procedures

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Plano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }

Linguagens de Programação I

Curso Java Starter. 1

Algoritmo e Técnica de Programação - Linguagem C

2 a LISTA DE EXERCÍCIOS DE LINGUAGEM C

Comando Switch. Embora a escada if else-if possa executar testes de várias maneiras, ela não é de maneira nenhuma elegante.

Comandos de repetição while

valor_dolar = converte(valor_compra, taxa_dolar); valor_final = converte(valor_dolar, taxa_real) * ;

Variáveis e Comandos de Atribuição

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

Linguagem de Programação

PROCESSOS. Prof. Maicon A. Sartin

Introdução à Programação com Classes em C++

Algoritmos e Programação Estruturada

INF 1005 Programação I

5 Apresentando a linguagem C

14.1 Vetor - Problemas

INF 1007 Programação II

Fundamentos de Programação Linguagem C++ Entrada e saída com arquivos

Capítulo 2: Introdução à Linguagem C

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

Listas (Parte 2) Túlio Toffolo BCC202 Aula 10 Algoritmos e Estruturas de Dados I

Estrutura de Dados Básica

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Transcrição:

Sumário Operadores unários de incremento/decremento Ciclo for Fernando Mira da Silva 1 Operadores unários de incremento/decremento O incremento/decremento unitário de uma variável é uma operação tão frequente em programação que existem operadores específicos para o efeito Operadores de incremento: ++. Operadores de decremento: --. Exemplos: x++; (equivalente a x+=1;) y--; (equivalente a y-=1;) Fernando Mira da Silva 2

Operadores unários de incremento/decremento Os operadores de incremento/decremento podem ser utilizados no como prefixo ou sufixo do operando e aplicados no contexto de uma expressão mais complexa. Quando utilizados como prefixo, o valor da variável é incrementado (ou decrementado) antes de ser utilizado no contexto da expressão em que se enconta. Quando utilizados como sufixo, o valor da variável é incrementado (ou decrementado) depois de ser utilizada no contexto da expressão em que se enconta. Exemplos: int a,b,i,l; l = i = 2; a = 3 + i++; /* a <- 5, i <- 3, incremento após a soma */ a = 3 + ++l; /* a <- 6, l <- 3, incremento depois da soma */ l = i = 6; a = 5 + i++; /* a <- 11, i <- 7, decremento após a soma */ a = 5 + ++l; /* a <- 12, l <- 7, decremento depois da soma */ Fernando Mira da Silva 3 Contagem de caracteres - variante Inicialização de variáveis incluída na declaração. Utilização do operador unário ++ para o incremento simples de variáveis. Integração da função (getchar()), na condição de teste do ciclo while. #include <stdio.h> /* Contagem de palavras e caracteres, V3 */ int main(){ char c,ult = ; int npal = 0,ncar = 0,nlin= 0; while((c = getchar())!= EOF){ ncar++; if( c!= \n ){ if((c!= ) && (ult == )){ npal++; Fernando Mira da Silva 4

ult = c; else{ nlin++; ult = ; printf( " Linhas = %d pal. = %d caracteres = %d\n", nlin,npal,ncar); return 0; Fernando Mira da Silva 5 O que deve ser evitado No cálculo de expressões lógicas, o C especifica que as operações param logo que o o resultado é determinado. Por exemplo, na atribuição x = a && (b>3), se a for falso, a expressão (b>3) não é calculada, já que o resultado da expressão será sempre falso. Esta propriedade leva a que alguns programadores abusem desta facilidade para substituir uma condição por uma expressão lógica: if(a) b=c; é de facto equivalente a a && (b=c). Esta prática é totalmente desaconselhável. Fernando Mira da Silva 6

#include <stdio.h> /* Contagem de palavras e caracteres, V4 */ /* Versão pouco legível e desaconselhável*/ int main(){ char c,ult = ; int npal = 0,ncar = 0,nlin= 0; while((c = getchar())!= EOF){ ncar++; npal += (c!= )&&(ult == )&&(c!= \n ); ult = c; nlin += (c == \n ) && (ult = ); printf( " Linhas = %d pal. = %d caracteres = %d\n", nlin,npal,ncar); return 0; Fernando Mira da Silva 7 Do mau ao ilegível... O abuso de facilidades do C e a má a escolha de nomes de variáveis e pode ser suficiente para produzir programas totalmente ilegíveis... #include <stdio.h> /* Contagem de palavras e caracteres, V5 */ /* Versão ilegível */ int main(){ char c,u= ;int p=0,x=0,l=0; while((c=getchar())!=eof){ x++;p+=c!= &&u== &&c!= \n ;u=c;l+=c== \n &&(u= ); printf(" Linhas = %d pal. = %d caracteres = %d\n",l,p,x); return 0; Fernando Mira da Silva 8

... e do ilegível ao obscuro... e, quem pretenda, pode mesmo tornar o programa totalmente obscuro #include <stdio.h> /* Contagem: versão "mas afinal o que é que é isto?" */ #define A " Linhas = %d pal. = %d caracteres = %d\n" #define L #define U u==l #define C return 0; #define I int #define N I main(){ #define E printf( #define _ (c=getchar()) #define s while( #define e char c,u=l;i p=0,x=0,l=0 #define z \n N e;s _!=-1){x++;p+=c!=L&&U&&c!=z;u=c;l+=c==z&&(u=L);E A,l,p,x);C Fernando Mira da Silva 9 O ciclo for Problema: cálculo de uma potência inteira int k,n; float base,pot; printf("base e o exp? "); scanf("%f %d",&base,&n); pot = 1.0; k = 1; while(k <= n){ pot = pot * base; k++; printf("res = %10.4f\n",pot); Dada a frequência com que surge a estrutura o C disponibiliza a construção equivalente Fernando Mira da Silva 10

Cálculo da potência inteira com o ciclo for Versão básica Cada elemento de controlo do ciclo for pode incluir mais do que uma expressão int k,n; float base,pot; printf("base e o exp? "); scanf("%f %d",&base,&n); pot = 1.0; for(k = 1; k <= n ; k++){ pot = pot * base; printf("res = %10.4f\n",pot); int k,n; float base,pot; printf("base e o exp? "); scanf("%f %d",&base,&n); for(k = 1,pot = 1.0; k <= n ; k++){ pot = pot * base; printf("res = %10.4f\n",pot); Fernando Mira da Silva 11 Controlo de ciclos: break e continue Um ciclo while, do ou for pode ser interrompido em qualquer ponto pela execução da instrução break, a qual provoca a transferência do fluxo de execução para a primeira instrução imediatamente a seguir ao ciclo. No caso de ciclos encadeados, a instrução break só interrompe o ciclo interior ao que a instrução ocorre A instrução continue provoca a transferência do fluxo para o final do bloco do ciclo, permanecendo a execução no ciclo desde que a condição de permanência for verificada. while(<cond>){ <instr.>; (...) <instr.>; if(<cond-interr.>){ <instr.> (...) <instr.> while(<cond>){ <instr.>; (...) <instr.>; if(<cond-interr.>){ continue; <instr.> (...) Fernando Mira da Silva 12

DEEC - IST Sumário Estrutura switch Estrutura switch Tipos enumerados Fernando Mira da Silva 13 DEEC - IST Estrutura switch Estrutura switch É frequente a necessidade de optar por uma dada operação em função de vários valores: char c; printf("indique o país "); scanf(" %c",&c); printf("país de origem: "); if((c == p ) (c== P )) printf("portugal\n"); else if((c == e ) (c== E )) printf("espanha\n"); else if((c == f ) (c== F )) printf("frança"); else printf("não considerado\n"); A estrutura switch evita o if encadeado: switch(c){ case p : case P : printf("portugal\n"); case e : case E : printf("espanha\n"); case f : case F : printf("frança\n"); default: printf("não considerado\n"); Fernando Mira da Silva 14

DEEC - IST Fluxo na estrutura switch Tipos enumerados x=a? V F Processa a x=b? V Na estrutura switch, após a verificação de uma condição são em princípo executadas todas as instruções seguintes do bloco switch. Quando se pretende evitar este comportamento, é utilizada a instrução break. F x=c? F x=d? V V Processa b Processa c F Processa d default Fernando Mira da Silva 15 DEEC - IST Tipos enumerados Tipos enumerados O C permite a definição de tipos discretos (enumerados) definidos pelo utilizador. A análise ou selecção de uma variável enumerada é frequentemente realizada por uma estrutura switch. enum todasascores {branco,creme, castanho,preto,azul; enum todasascores cor; /* (...) */ switch(cor){ case branco: case creme: printf("cor clara\n"); case castanho: case preto: printf("cor escura\n"); default: printf("outra cor\n"); Fernando Mira da Silva 16