Introdução à Programação C

Documentos relacionados
Introdução à Programação C

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

INF1005: Programação 1. Condicionais. 08/03/10 (c) Rogério Rodrigues 1

Módulo 3 Controle de Fluxo

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

Introdução à Programação I

Controle de Fluxo - Condicionais. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC

Capítulo 4: Condicionais

Linguagens de Programação

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação C

Cap. 3 Entrada e Saída e Controle de Fluxo

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática

Processamento da Informação Estruturas de seleção simples e composta

Estrutura do programa

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

controle de fluxo - condicionais

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Introdução a Programação de Jogos

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Introducao a Programacao Estruturas de decisão

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

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

Linguagem C (estruturas condicionais)

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).

Introdução à Programação

Introdução a Programação de Jogos

Variáveis primitivas e Controle de fluxo

1) Operadores de auto incremento ++ e auto decremento --

Laboratório de Programação II

Programação: Vetores

Programação de Computadores II

Programação Estruturada

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Entrada. Comando 1 Comando 2. Saída

Aula 01. Programação Condicional Programação repetitiva

Programação de Computadores II Aula 03. Linguagem C I

Programação para Games I

Controle de Fluxo - Condicionais

Linguagem de Programação III

Aula 4 Introdução ao C

Introdução à Programação C

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Controle de Fluxo Utilizando C

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Programação Estruturada e Orientada a Objetos

Linguagens de Programação

Estruturas de Decisão e loops

Comandos de Controle do Programa

GFM015 Introdução à Computação Algoritmos e Programação / Controle de Fluxo / Estutura Condicional

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Operadores. A linguagem C é muito rica em operadores internos. Ela define quatro classes de operadores:

Programação I Funções. Prof. Carlos Alberto

Linguagem C: Elementos fundamentais

Função. Unidade autônoma do programa desenvolvida para executar alguma atividade. A estrutura de uma função C é semelhante à da função main( )

Aula 6: Comandos Estruturados Estrutura Condicional

ponteiros INF Programação I Prof. Roberto Azevedo

Estruturas condicionais

Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes

Linguagem C Princípios Básicos (parte 1)

Linguagem C estruturas de repetição

Introdução à Programação em C Input / Output

Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Algoritmos e Programação

Material sobre Funções AEDS 1

Curso de C. Estruturas Condicionais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

CCO 016 Fundamentos de Programação

Linguagem C (repetição)

Aula 8 Comandos de Seleção

Introdução à Programação. Ciclos 2ª parte

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

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

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Sintaxe Básica de Java Parte 2

Seleção Múltipla Laços (while, do-while, for) AULA 05

Processamento da informação. Prof. Fabrício Olivetti de França

Linguagem C. Prof.ª Márcia Jani Cícero

Programação Estruturada

Aula 03 Introdução à Programação com a Linguagem Python

C Comandos de Controle

MC-102 Aula 06 Comandos Repetitivos

Algoritmos e Estruturas de Dados I (DCC/003) Funções

Computação eletrônica: Operadores, expressões e funções

Tópicos Cap. 3 Entrada e Saída e Controle de Fluxo Livro printf e scanf if e? while for switch break continue Entrada e Saída Entrada e Saída

C Comandos de Controle

SSC304 Introdução à Programação Para Engenharias. Controle de Fluxo. GE4 Bio

Ponteiros e Alocação de Memória

Linguagens de Programação I

SSC 0301 IC para Engenharia Ambiental

Treinamento Olimpíada Brasileira de Informática

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Introdução à Programação

Aula 03: Introdução a C

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Algoritmos e Programação

Transcrição:

Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc

Funções Um bom programa é fatorado em diversas funções pequenas, cada uma resolvendo uma parte específica do problema static tipo_de_retorno nome_da_função(parâmetros) { variáveis locais comandos Um comando essencial em uma função é o comando return, que encerra a execução da função atual e retorna o valor de uma expressão como o valor de retorno da função O corpo de uma função simples pode ser apenas um comando return e uma expressão envolvendo seus parâmetros static double converte(double c) { return 1.8 * c + 32;

Parâmetros vs argumentos Os parâmetros de uma função são os nomes que damos para a sua entrada, quando escrevemos o código da função Em C, os parâmetros sempre são precedidos dos seus tipos Os argumentos de uma chamada de função são os valores passados para uma função, dados pelas expressões que escrevemos na chamada Cada argumento deve corresponder a um parâmetro, e o tipo do valor daquele argumento também deve corresponder ao tipo do parâmetro

Variáveis locais As variáveis declaradas no corpo de uma função são locais àquela função, e só existem quanto a função estiver executando Os parâmetros da função também são como variáveis locais Podemos atribuir a um parâmetro, mas isso não afeta o argumento que foi passado para a chamada da função! static int duplica(int x) { x = x * 2; return x; int main() { int x, y; scanf("%d %d", &x, &y); printf("%d %d\n", duplica(x), duplica(y)); printf("%d %d\n", x, y); return 0;

Exemplo Dados a hora, minuto e segundo em que um corredor de uma maratona partiu, e dados a hora, minuto e segundos em que este mesmo corredor cruzou a linha de chegada, calcule o tempo total de prova deste corredor em segundos int tempo_prova(int hp, int mc, int sc, int hc, int mc, int sc) A função principal que pede para o usuário a hora, minuto e segundo de partida e de chegada do corredor, usa a função tempo_prova para calcular o tempo de prova, e imprime o tempo no formato horas:minutos:segundos

Parâmetros de saída Uma função C só pode retornar um único valor com return, mas às vezes uma função precisa retornar várias coisas No exemplo do slide anterior, se quisermos transformar o código que traduz segundos para horas, minutos e segundos precisamos de uma função que retorna três valores Outro exemplo é scanf, que retorna um número arbitrário de valores, a depender dos códigos de formato passados no modelo A maneira de expressar essas funções em C é com parâmetros de saída

Parâmetros de saída (2) Indicamos um parâmetro de saída adicionando * (uma estrela) ao seu tipo: char*, int*, double* Não usamos return para indicar parâmetros de saída, mas fazemos uma atribuição a cada um deles Nessa atribuição, colocamos outra estrela à esquerda do nome do parâmetro: static void divr(int a, int b, int* q, int* r) { *q = a / b; *r = a % b; Não é prudente misturar return e parâmetros de saída, por isso usamos o tipo de retorno void

Exemplo No exemplo anterior, vamos extrair o código que transforma segundos em horas, minutos e segundos da função principal para uma função auxiliar usando três parâmetros de saída Agora vamos refatorar esse código para usar a função divr dada no slide anterior

Condicionais Até agora todas os comandos de nossas funções são executados um após o outro, mas isso é muito limitante Vocês se lembram que é muito comum ter funções em que o fluxo de controle dentro da função depende de certas condições O comando condicional básico em Python era o comando if-elif-else, e temos um comando similar em C Uma diferença fundamental é que C não possui um tipo específico para valores verdadeiros e falsos: qualquer número serve, sendo 0 falso e diferente de 0 verdadeiro!

if e if-else O comando if executa um bloco de comandos apenas se a condição for verdadeira: if(a > b) { return a; Se a condição for falsa a execução segue no comando após o if O comando if-else recebe dois blocos de comandos, executando apenas o primeiro se a condição for verdadeira e apenas o segundo se for falsa if(a > b) { return a; else { return b;

Cascata de ifs Um comando condicional pode precisar ter mais de dois casos, usando mais de uma condição em cascata Entre o bloco if e o bloco else podemos ter quantos blocos else if quisermos, cada um com uma condição if(x > 3) { return x; else if(x < -1) { return x; else { return 1; Apenas um dos blocos é executado: ou o que corresponde à primeira condição verdadeira, ou o else se todas forem falsas

Expressões condicionais Em uma expressão condicional normalmente usamos os operadores relacionais (>, <, >=, <=,!=, ==), que têm como resultado 0 se a comparação for falsa e 1 se for verdadeira Podemos usar também os operadores lógicos, para combinar várias expressões condicionais: && (e), que é verdadeiro se o seu lado esquerdo e direito forem verdadeiros (ou), que é verdadeiro se seu lado esquerdo ou direito forem verdadeiros! (não), que é verdadeiro se sua expressão for falsa e vice-versa

Tabelas verdade Podemos esquematizar o efeito dos operadores lógicos com tabelas verdade

Predicados Podemos também usar chamadas de função com um resultado booleano em uma expressão condicional Essas funções são chamadas de predicados, e têm tipo de retorno int static int letra(char c) { return ((c >= 'a') && (c <= 'z')) ((c >= 'A') && (c <= 'Z'));

Exemplo Vamos criar um predicado para dizer se um aluno foi aprovado ou não, dadas as notas em suas três provas e as regras de aprovação do nosso curso