Introdução à Programação em C

Documentos relacionados
Introdução à Programação em C (I)

Introdução à Programação em C (I)

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

Introdução à Programação em C (II)

Estrutura do programa

Introdução a Programação de Jogos

Linguagens de Programação

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

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

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

Introdução à Linguagem C Variáveis e Expressões

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

Linguagem de Programação C

Linguagens de Programação I

Disciplina de Algoritmos e Programação

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

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

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Introdução à Linguagem C

11 - Estrutura de um programa em C

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

Algoritmos e Programação

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

3. Linguagem de Programação C

Introdução a Computação

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

Legibilidade do código fonte

Programação: Vetores

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

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

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

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

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

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

Apresentação da ferramenta de programação. Comandos de entrada e saída. Prof. Alex Camargo

INF 1005 Programação I

Fundamentos de Programação 1

Conceitos Básicos Linguagem C

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

Programação Básica. Estrutura de um algoritmo

Conhecendo a Linguagem de Programação C

Introdução a Programação na Linguagem C.

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

LP II Estrutura de Dados

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Introdução à Programação Aula 3 Primeiros programas

Aula 07 Introdução à Programação Subprogramas

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

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

Programação de Computadores II

Programação Estruturada

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Programação I Aula 3 Primeiros programas

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

3.1 - Funções para manipular dados de entrada e saída padrão

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

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Linguagem C. André Tavares da Silva.

3. Linguagem de Programação C

Princípios de Desenvolvimento de Algoritmos MAC122

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

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

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

Linguagem C: Introdução

Transcrição:

Introdução à Programação em C Tipos e Operadores Elementares Estruturas de Controlo Resumo Novidades em C Exemplo: Factorial Tipos de Dados Básicos Saltos Condicionais: if-then-else Valor de retorno de uma função: return Exemplo: Conversão de Temperaturas Definição de variáveis e atribuições Ciclos utilizando a estrutura de controlo while Ciclos utilizando a estrutura de controlo for Definição de constantes usando #define 2

Novidades em C def factorial(n): if n == 0 return 1 else: return n*factorial(n-1) int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); Tipificação estática (C não permite dinâmica) Tipo de cada variável já definido na compilação 3 Novidades em C def factorial(n): if n == 0 return 1 else: return n*factorial(n-1) int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); Tipificação estática (C não permite dinâmica) Tipo de cada variável definido na compilação Blocos delimitados por em vez de indentação Indentação é apenas utilizada para tornar o código mais legível Se o bloco só contém uma instrução as são opcionais 4

Novidades em C def factorial(n): if n == 0 return 1 else: return n*factorial(n-1) Assim também funciona! int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); Tipificação estática (C não permite dinâmica) Tipo de cada variável definido na compilação Blocos delimitados por em vez de indentação Indentação é apenas utilizada para tornar o código mais legível Se o bloco só contém uma instrução as são opcionais 5 Factorial int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); Tipo de dados do valor de retorno da função Precede o nome da função Tipos básicos: char, int, long int, double e float; Tipos complexos: estruturas, uniões, tabelas, ponteiros para tipos mais simples e funções 6

Factorial int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); Tipo de dados do parâmetro n Todos os parâmetros são precedidos pelo seu tipo 7 Factorial int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); Sintaxe da estrutura de controlo: if-then-else if (<condição>) <instrução1> else <instrução2> Se a condição é verdadeira, executa instrução1 Caso contrário, executa instrução2 8

Factorial int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); Sintaxe da instrução return return <expressão>; Termina a execução da função Resultado da expressão é o valor de retorno da função 9 Réplica do Z3, considerado o primeiro computador programável completamente automático Deutsches Museum, Munique 10 2012/2013

Conversão de Temperaturas Construir um programa que escreve uma tabela de conversão de temperaturas da escala Fahrenheit para escala Celsius 5 T Celsius ( T 9 = Fahrenheit 32) 0-17 20-6 40 4... 260 126 280 137 300 148 11 Conversão de Temperaturas Algoritmo Inicia no limite inferior de temperatura na escala Fahrenheit Converte temperatura para escala Celsius Escreve linha da tabela com temperaturas Aumenta valor de temperatura na escala Fahrenheit 12

Conversão de Temperaturas Algoritmo Inicia no limite inferior de temperatura na escala Fahrenheit Converte temperatura para escala Celsius Escreve linha da tabela com temperaturas Aumenta valor de temperatura na escala Fahrenheit 13 Conversão de Temperaturas Algoritmo Inicia no limite inferior de temperatura na escala Fahrenheit Enquanto temperatura não fôr superior ao limite superior Converte temperatura para escala Celsius Escreve linha da tabela com temperaturas Aumenta valor de temperatura na escala Fahrenheit 14

Conversão de Temperaturas Algoritmo Inicia no limite inferior de temperatura na escala Fahrenheit fahr = inferior; Enquanto temperatura não fôr superior ao limite superior while (fahr <= superior) Converte temperatura para escala Celsius celsius = 5 * (fahr-32) / 9; Escreve linha da tabela com temperaturas printf("%d\t%d\n", fahr, celsius); Aumenta valor de temperatura na escala Fahrenheit fahr = fahr + passo; 15 Conversão de Temperaturas #include <stdio.h> /* Conversao Fahrenheit-Celsius */ int fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; fahr = inferior; while (fahr <= superior) celsius = 5 * (fahr-32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + passo; return 0; Vamos analisar o código em detalhe 16

Comentários #include <stdio.h> /* Conversao Fahrenheit-Celsius */ int fahr, celsius; int inferior, superior, passo; Comentários: texto entre /* e */ 17 Declaração de Variáveis int fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Síntaxe: <tipo> <variável> <tipo> <variável>,..., <variável> 18

Atribuição de Valor a uma Variável int fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Síntaxe: <variável> = <expressão> 19 Ciclo while Algoritmo Inicia no limite inferior de temperatura na escala Fahrenheit fahr = inferior; Enquanto temperatura fôr inferior ao limite superior while (fahr <= superior) Converte temperatura para escala Celsius celsius = 5 * (fahr-32) / 9; Escreve linha da tabela com temperaturas printf("%d\t%d\n", fahr, celsius); Aumenta valor de temperatura na escala Fahrenheit fahr = fahr + passo; 20

Ciclo while fahr = inferior; while (fahr <= superior) celsius = 5 * (fahr-32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + passo; Ciclo while Síntaxe: while (<expressao>) <instrução> Indentação ajuda a perceber estrutura do programa Erro frequente: while (i >= 0); i = i-1; 21 Output com printf fahr = inferior; while (fahr <= superior) celsius = 5 * (fahr-32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + passo; printf permite efectuar escrita formatada %d inteiro decimal, \t caracter tabulação Melhorar formatação: printf("%3d\t%6d\n", fahr, celsius); Problema: 0 o F são -17,8 o C e não -17 o C 22

Divisão Inteira fahr = inferior; while (fahr <= superior) celsius = 5 * (fahr-32) / 9; printf("%d\t%d\n", fahr, celsius); fahr = fahr + passo; Divisão entre inteiros é divisão inteira Resultado é o quociente da divisão (número inteiro) Exemplo: 5/9 é 0 23 Divisão Inteira #include <stdio.h> /* Conversao Fahrenheit-Celsius */ int fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Como resolver o problema da divisão inteira? fahr = inferior; while (fahr <= superior) celsius = 5 * (fahr-32) / 9; printf("%3d\t%6d\n", fahr, celsius); fahr = fahr + passo; return 0; 24

Divisão Inteira #include <stdio.h> /* Conversao Fahrenheit-Celsius */ float fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Como resolver o problema da divisão inteira? fahr = inferior; while (fahr <= superior) fahr = fahr + passo; return 0; 25 Definição de Constantes #include <stdio.h> /* Conversao Fahrenheit-Celsius */ float fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Estas variáveis todas são mesmo necessárias? fahr = inferior; while (fahr <= superior) fahr = fahr + passo; return 0; 26

Definição de Constantes #include <stdio.h> /* Conversao Fahrenheit-Celsius */ float fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Têm sempre o mesmo valor! Estas variáveis todas são mesmo necessárias? fahr = inferior; while (fahr <= superior) fahr = fahr + passo; return 0; 27 Definição de Constantes #include <stdio.h> /* Conversao Fahrenheit-Celsius */ float fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Podem ser constantes! Estas variáveis todas são mesmo necessárias? fahr = 0; while (fahr <= 300) fahr = fahr + 20; return 0; 28

Definição de Constantes #include <stdio.h> /* Conversao Fahrenheit-Celsius */ float fahr, celsius; fahr = 0; while (fahr <= 300) fahr = fahr + 20; return 0; Má prática utilizar valores explícitos Alternativa: utilização de constantes, com #define 29 Definição de Constantes #include <stdio.h> /* Conversao Fahrenheit-Celsius */ #define INFERIOR 0 #define SUPERIOR 300 #define PASSO 20 float fahr, celsius; Directivas para o pré-compilador não terminam com ; fahr = INFERIOR; while (fahr <= SUPERIOR) fahr = fahr + PASSO; return 0; 30

Ciclos while vs. for while ( ) for ( ; ; ) 31 Ciclos while vs. for fahr = INFERIOR; while ( ) for (fahr = INFERIOR; ; ) 32

Ciclos while vs. for fahr = INFERIOR; while (fahr <= SUPERIOR) for (fahr = INFERIOR; fahr <= SUPERIOR; ) 33 Ciclos while vs. for fahr = INFERIOR; while (fahr <= SUPERIOR) fahr = fahr + PASSO; for (fahr = INFERIOR; fahr <= SUPERIOR; fahr = fahr + PASSO) Inicialização de variáveis: fahr = INFERIOR Teste: fahr <= SUPERIOR Incremento: fahr = fahr + PASSO 34

O que sabemos até agora: O programa começa sempre pela função main() Inclusão de funções adicionais ao C através da directiva #include Cada bloco é definido por Tipos de dados básicos: char, int, float e double Definição de variáveis e atribuições Ciclos utilizando a estrutura de controlo while Ciclos utilizando a estrutura de controlo for Definição de constantes usando directivas de pré-compilador #define Já sabemos escrever para o terminal (stdout) através do comando printf. Mas como consigo interagir com o utilizador? 35 Exercicio 1: Tabela de Factoriais Usar a função factorial para construir um programa que escreve uma tabela com os valores do factorial de 1 a 10. 1 1 2 2 3 6 4 24... 10 3628800 36

Exercicio 2: Tabela de Factoriais Aumente o limite do programa anterior para mostrar o valor do factorial de 1 a 30. Observe o resultado. 1 1 2 2 3 6 4 24... 10 3628800...... 30??? 37 Exercicio 3: Factorial usando Ciclos Implemente uma nova versão da função factorial, mas não use recursão. Utilize a estrutura de controlo while. 38

Resumo 39 Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then e if-then-else Ciclos utilizando a estrutura de controlo while Ciclos utilizando a estrutura de controlo for Definição de constantes usando #define Super computador IBM BlueGene/P o computador mais rápido do mundo em Março de 2009 Argonne Leadership Computing Facility, USA 40 IAED, 2012/2013 2014/2015