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

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

Introdução à Programação em C

Estrutura do programa

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

Introdução a Programação de Jogos

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

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

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

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

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

Disciplina de Algoritmos e Programação

Linguagens de Programação

Introdução a Computação

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

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

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

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

Legibilidade do código fonte

3. Linguagem de Programação C

Linguagens de Programação I

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

INF 1005 Programação I

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

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

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

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

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

Linguagem de Programação C

Princípios de Desenvolvimento de Algoritmos MAC122

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

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

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

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

Introdução à Computação MAC0110

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO

UNIVERSIDADE DA BEIRA INTERIOR

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 à Linguagem C

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

Fundamentos de Programação 1

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

Conceitos Básicos Linguagem C

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

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

Introdução à Programação

Algoritmos e Programação

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

Características da Linguagem C

3. Linguagem de Programação C

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

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

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

Disciplina de Algoritmos e Programação

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

Linguagem C: Introdução

Linguagem C estruturas de repetição

Linguagem C. André Tavares da Silva.

Programação: Vetores

Linguagem de Programação JAVA. Tiago Alves de Oliveira

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

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

Programação Estruturada

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Disciplina de Algoritmos e Programação

Capítulo 2 Operadores. A função scanf()

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

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Conhecendo a Linguagem de Programação C

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

INTRODUÇÃO À LINGUAGEM C. Prof. Msc. Luis Filipe Alves Pereira 2015

LP II Estrutura de Dados

Transcrição:

Introdução à Programação em C (I) IAED Tagus, 2009/2010

Organização de Ficheiros em C Organização Típica de Ficheiros em C Inclusão de bibliotecas de sistema Inclusão de bibliotecas locais Definição de tipos e constantes Variáveis globais Funções As funções são normalmente definidas de forma Bottom-Up dado que têm que estar definidas antes de serem utilizadas Podem existir variações desta organização 2 IAED Tagus,2009/2010

Resumo Diferenças na Sintaxe entre Scheme e 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 3 IAED Tagus,2009/2010

Factorial Definição de função para cálculo de factorial Scheme (define (factorial n) (if (= n 1) 1 (* n (factorial (- n 1))))) C int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); 4 IAED Tagus,2009/2010

Factorial int factorial (int n) if (n == 1) return 1; else return n*factorial(n-1); Novidades em C Linguagem tipificada Notação infixa Operador de comparação de igualdade é == Operador = é usado para atribuição 5 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

Réplica do Z3, considerado o primeiro computador programável completamente automático Deutsches Museum, Munique 10 IAED Tagus,2009/2010

Construir um programa que escreve uma tabela de conversão de temperaturas da escala Fahrenheit para escala Celsius 0-17 20-6 40 4 5 T Celsius = ( TFahrenheit 9 32)... 260 126 280 137 300 148 11 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

#include <stdio.h> /* Conversao Fahrenheit-Celsius */ main () 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; 16 IAED Tagus,2009/2010

#include <stdio.h> /* Conversao Fahrenheit-Celsius */ main () int fahr, celsius; int inferior, superior, passo; Comentários Texto entre /* e */ 17 IAED Tagus,2009/2010

main () int fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Declaração de variáveis 18 IAED Tagus,2009/2010

main () int fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; Instruções de atribuição de um valor a uma variável Sintaxe: <variável> = <expressão> 19 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

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 IAED Tagus,2009/2010

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 22 IAED Tagus,2009/2010

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 23 IAED Tagus,2009/2010

#include <stdio.h> /* Conversao Fahrenheit-Celsius */ main () int fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; fahr = inferior; while (fahr <= superior) celsius = 5 * (fahr-32) / 9; printf("%3d\t%6d\n", fahr, celsius); fahr = fahr + passo; 24 IAED Tagus,2009/2010

#include <stdio.h> /* Conversao Fahrenheit-Celsius */ main () float fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; fahr = inferior; while (fahr <= superior) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); fahr = fahr + passo; 25 IAED Tagus,2009/2010

#include <stdio.h> /* Conversao Fahrenheit-Celsius */ main () float fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; fahr = inferior; while (fahr <= superior) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); fahr = fahr + passo; 26 IAED Tagus,2009/2010

#include <stdio.h> /* Conversao Fahrenheit-Celsius */ main () float fahr, celsius; int inferior, superior, passo; inferior = 0; superior = 300; passo = 20; fahr = 0; while (fahr <= 300) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); fahr = fahr + 20; 27 IAED Tagus,2009/2010

#include <stdio.h> /* Conversao Fahrenheit-Celsius */ main () float fahr, celsius; fahr = 0; while (fahr <= 300) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); fahr = fahr + 20; Má prática utilizar valores explícitos Alternativa: utilização de constantes, com #define 28 IAED Tagus,2009/2010

#include <stdio.h> /* Conversao Fahrenheit-Celsius */ #define INFERIOR 0 #define SUPERIOR 300 #define PASSO 20 main () float fahr, celsius; fahr = INFERIOR; while (fahr <= SUPERIOR) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); fahr = fahr + PASSO; 29 IAED Tagus,2009/2010

while ( ) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); for ( ; ; ) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); 30 IAED Tagus,2009/2010

fahr = INFERIOR; while ( ) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); for (fahr = INFERIOR; ; ) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); 31 IAED Tagus,2009/2010

fahr = INFERIOR; while (fahr <= SUPERIOR) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); for (fahr = INFERIOR; fahr <= SUPERIOR; ) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); 32 IAED Tagus,2009/2010

fahr = INFERIOR; while (fahr <= SUPERIOR) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); fahr = fahr + PASSO; for (fahr = INFERIOR; fahr <= SUPERIOR; fahr = fahr + PASSO) celsius = (5.0/9.0) * (fahr-32); printf("%3.0f\t%6.1f\n", fahr, celsius); Inicialização de variáveis: fahr = INFERIOR Teste: fahr <= SUPERIOR Incremento: fahr = fahr + PASSO 33 IAED Tagus,2009/2010

Exercicio para Casa (1) 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 34 IAED Tagus,2009/2010

Exercicio para Casa (2) 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??? 35 IAED Tagus,2009/2010

Exercicio para Casa (3) Implemente uma nova versão da função factorial, mas não use recursão. Utilize a estrutura de controlo while. 36 IAED Tagus,2009/2010

Resumo 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 37 IAED Tagus,2009/2010