ALGORITMO I CH: 60 h Créditos: 4.0.0 - Código: 5588.9 EMENTA Resolução de problemas e desenvolvimento de algoritmos: análise do problema, estratégias de solução e representação. Estruturação e modularização. Tipos de dados. Recursão e suas aplicações. Estudo de uma linguagem de programação. Depuração e documentação de programas. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 1
Programa Algoritmos Introdução Conceitos de algoritmos; Exemplos; Dados e informações. Programas e Programação estruturada Conceito de linguagem de programação; Linguagem de programação: baixo e alto-nível; Compilação e compiladores Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 2
Programa Criação de algoritmos Roteiro para descrição de algoritmos; Formas de representação de algoritmos Algoritmos e dados Tipos de dados; Variáveis e constantes; Operações básicas e operadores; Esquema genérico de um algoritmo em pseudo-código. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 3
Programa Algoritmos e estruturas de controle Estruturas de controle básicas Estrutura de controle seqüencial; Estrutura de controle de desvio condicional; Estruturas de repetição; Uso de variáveis em algoritmos Tratamento de dados na Linguagem C Tipos de dados em C; Variáveis e constantes em C; Variáveis locais e globais em C Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 4
Programa Estruturas de controle alternativas Desvio condicional alternativo em C; Desvio condicional com switch/case; Algoritmos baseados em estruturas de dados homogêneas Conceito de vetores; Algoritmos com vetores; Implementação de vetores na Linguagem C. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 5
Bibliografia Bibliografia Básica Guimarães, A de M.; LAGES, N A.de C. Algoritmos e estruturas de dados, Rio de Janeiro, Ed.L.T.C.S.A., 1994, 216pp. Herbert Schildt. C Completo e Total, Makron Books, 1997, 827 pp. Bibliografia de Apoio FORBELLONE, André L. V.; Eberspächer, Henri F. Lógica de Programação - A Construção de Algoritmos e Estruturas de Dados 2a. Edição. Makron Books. 2000. FARRER, H. e outros. Algoritmos Estruturados Editora Guanabara. 1985. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 6
Bibliografia Bibliografia de Apoio ( internet) http://www.inf.pucrs.br/~pinho/laproi/devc/dev.html Compilador dev-c++ http://sourceforge.net/projects/dev-cpp/files/binaries/dev- C%2B%2B%204.9.9.2/devcpp- 4.9.9.2_setup.exe/download?use_mirror=ufpr http://sites.google.com/site/yurilacerda/disciplinas/algoritm os-e-programao-i http://www.deinf.ufma.br/~portela/ http://www.deinf.ufma.br/~maria/ Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 7
Algoritmo ALGORITMO sequência de passos finitos com o objetivo de solucionar um problema. é um conjunto de passos (ações) que levam à solução de um determinado problema. Ex. Falar no telefone, trocar uma lâmpada Cada linha de um algoritmo chamamos de INSTRUÇÃO Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 8
Algoritmo PORTUGUÊS ESTRUTURADO - tem como finalidade mostrar uma notação para elaborações futuras de algoritmos, os quais serão utilizados na definição, criação e desenvolvimento de uma linguagem computacional ( Fortran, Clipper, C, pascal, Delphi, Visual-Objects) e sua documentação. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 9
Algoritmo PSEUDO-CÓDIGOS - formalismo para representar os algoritmos Sintaxe: Algoritmo NomeDoAlgoritmo ; Cons:... Var:... Procedimentos ou Funções... Inicio_algoritmo corpo do algoritmo... Fim_algoritmo Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 10
Lógica de Programação INSTRUÇÕES ALGORITMOS PROGRAMAS SOFTWARE SISTEMAS INSTRUÇÕES: informação que indica uma ação. ALGORITMO: série de instruções ( linguagem humana). PROGRAMAS: série de instruções legíveis ( lógica). Linguagem específica. SOFTWARE: conjunto de programas. SISTEMA: conjunto de software. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 11
Exemplo de Algoritmo Exem1 - DESCREVER A TROCA DE UMA LÂMPADA 1- Pegue uma escada 2- Posicione-a embaixo da lâmpada 3- Busque uma lâmpada nova 4- Suba a escada 5- Retire a lâmpada velha 6- Coloque a lâmpada nova CADA LINHA INSTRUÇÃO CONJUNTO ALGORITMO. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 12
Algoritmo LÓGICA DE PROGRAMAÇÃO técnica de encadear pensamentos para atingir determinado objetivos. LINGUAGEM DE PROGRAMAÇÃO Linguagem de máquina Comunicação através de um fenômeno físico. Foram escolhidos dois símbolos básicos [0 (zero) / 1 (um)]. Linguagem de baixo nível Linguagem de Montagem, também conhecida como assembly. Linguagem de alto nível próxima do ser humano com alto poder de expressividade. (Ex. C, Pascal, Java). Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 13
Algoritmo LINGUAGEM DE PROGRAMAÇÃO Linguagem de máquina Comunicação através de um fenômeno físico. Foram escolhidos dois símbolos básicos [0 (zero) / 1 (um)]. Linguagem de Montagem Também conhecida como assembly, conhecida como uma linguagem de baixo nível Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 14
Algoritmo PROCESSANDO UM ALGORITMO 10 8 entrada Algoritmo para calcular a média de duas notas saída A média das notas é: 9 Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 15
Algoritmo Portugol algoritmo SOMA_NOTA var N1,N2,MEDIA: real Inicio_algoritmo escreva( Entre com as notas") leia(n1,n2) MEDIA= (N1+N2)/2 escreva( A MEDIA =, MEDIA) Fim_algoritmo Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 16
Conceitos Básicos VARIÁVEIS - É um local (endereço) na memória principal utilizado pelo programa para armazenar um determinado conteúdo. Declaração de variáveis - devem ser declaradas no início do algoritmo Sintaxe: nome da variável: Tipo da variável. Ex: Idade: inteiro Raio: real Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 17
Conceitos Básicos VARIÁVEIS Tipos de Variáveis: INT A; ( Inteiro: 5, 10, -5) REAL B; (Décimais, Fracionários: 5.4, -7.34) STRING NOME; (Caractere, Literal, Alfanumérica: maria, A ) LOGICO R; (booleano: Verdadeiro e Falso) CONSTANTES - São valores que não sofrem nenhuma variação no decorrer da execução do algoritmo PI = 3.14 Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 18
EXPRESSÃO Conceitos Básicos Tipos de expressões: Aritméticas - São aquelas que usam operadores aritméticos e os operandos são constantes ou variáveis numéricas. Soma (+) Ex. (a + b) Subtração (-) Ex. (a - b) Mutiplicação (*) Ex. (a*b) Divisão (/) Ex. (a/b) Exponenciação (** ou ^ ) Ex. (a**b) Resto (%) Ex. (a%b) (ou mod) Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 19
Conceitos Básicos ATRIBUIÇÃO Maneira de armazenar um dado em uma variável leia abstrai o que vem da entrada padrão e armazena na variável LEIA X Outra forma de atribuir valores: X <- 10 Nome <- Antonio Idade <- 20 Pi <- 3.14 Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 20
Conceitos Básicos ATRIBUIÇÃO 1 momento: A <- 10 B <- 20 AUX <- A 2 momento: A <- B Memória Principal A B 10 20 AUX 10 Memória Principal A B 20 20 AUX 10 Memória Principal A B 20 10 AUX 10 3 momento: B <- AUX Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 21
Conceitos Básicos Sem a variável auxiliar (AUX) 1 momento: A <- 10 B <- 20 2 momento: A <- B Memória Principal A B 10 20 Memória Principal A B 20 20 Memória Principal A B 20 10 AUX 10 3 momento: B <- AUX Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 22
Conceitos Básicos Exemplo SOMA DE DOIS NÚMEROS INTEIROS Algoritmo SomaDeInteiros var x, y, soma: inteiro inicio escreva( Primeiro Numero: ) leia(x) escreva( Segundo Numero: ) leia(y) soma <- x + y escreva( A soma é:, soma) fimalgoritmo Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 23
Conceitos Básicos Exemplo CÁLCULO DA ÁREA DE UM CIRCULO algoritmo CalculaArea const pi: real var r: real Inicio pi <- 3,14159265 escreva( Calculo da area ) escreva( Informe o raio: ) leia(r) escreva( A area da circunferencia eh:, pi * r * r) fimalgoritmo Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 24
Funções Numéricas pi Conceitos Básicos Ângulo em Graus ângulo Radiano sen(x) Seno de um ângulo em radiano X <- ang * PI / 180 cos(x) Co-seno de um ângulo em radiano X <- ang * PI / 180 tan(x) tan de um ângulo em radiano X <- ang * PI / 180 abs(x) Valor Absoluto de um número Abs(-7) 7 exp(x) Base do logaritmo neperiano Exp(3) e³ 2.71828182846 **3 log(x) Logaritmo neperiano e um número raizq(x) Raiz quadrada e um número positivo raiz (4) 4 Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 25
Conceitos Básicos Funções Conversão de Tipos Resposta realint(11.5) Converte real em inteiro. 12 realint(11) Converte inteiro em real. 11. strtam( jose ) Retorna o número de caracteres. 4. strlem( jose,0) Retorna o elemento da posição j strnprim( jose,3) Retorna o elemento da posição jos Exercício de fixação lista 1 Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 26
Exercício de fixação - Lista1 Utilizando comandos de sequencia - Faça os algoritmos 1 - Entre com uma data no formato ddmmaa e imprima no formato: dia: mês: ano: 2- Faça um algoritmo que leia e imprima seu nome. 3- Ler dois números e imprimi-los. 4- Ler um número inteiro e imprimir seu sucessor e seu antecessor. 5- Ler nome, endereço e telefone e imprimi-los. 6- Ler dois números inteiros e imprimir a seguinte saída: Dividendo: Divisor: Quociente: Resto: Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 27
Exercício de fixação 1 Utilizando comandos de sequencia - Faça os algoritmos 7- Entrar com os valores dos catetos de um triângulo retângulo e imprimir a hipotenusa. 8- A pressão em um líquido varia com a profundidade de acordo com a fórmula : p= 0,03H, onde H é a profundidade. Dado o valor da profundidade H; calcule a pressão e imprima H,p 9 - Leia uma temperatura em graus centígrados e apresentá-las convertida em graus Fahrenheit. ( Dica: F = (9C + 160)/5 ) 10 - Ler dois números para as variáveis A e B, efetuar a troca dos valores de forma que a variável A passe a ter o valor da variável B e que a variável B passe a ter o valor da variável A. Apresentar os valores trocados. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 28
Exercício de fixação 1 Utilizando comandos de sequencia - Faça os algoritmos 13 - Criar um algoritmo que, dado um número de conta corrente com três dígitos, retorne o seu dígito verificador, o qual é calculado da seguinte maneira: Exemplo: número da conta 235 Somar o número da conta com o seu inverso: 235 + 532 = 767 Multiplicar cada dígito pela sua ordem posicional e somar estes resultados: 7 * 1 = 7-6 * 2 = 12-7 * 3 = 21 ------ 7 + 12 + 21 = 40 Digito verificar = último dígito da soma 0 Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 29
VISUALIZANDO OS ALGORITMOS Utilizando Visualg http://ultradownloads.uol.com.br/download/visualg/ Utilizando a linguagem C dev-c+4.9.9.2 Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 30
Conceitos Básicos Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 31
Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B, criado por Ken Thompson. O B, por sua vez, veio da linguagem BCPL, inventada por Martin Richards. O C é uma linguagem de programação genérica que é utilizada para a criação de programas diversos como processadores de texto, planilhas eletrônicas, sistemas operacionais, programas de comunicação, programas para a automação industrial, gerenciadores de bancos de dados, programas de projeto assistido por computador, programas para a solução de problemas da Engenharia, Física, Química e outras Ciências, etc Estudaremos a estrutura do ANSI C, o C padronizado pela ANSI. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 32
Formada de funções; Linguagem C main() é a função principal; { } delimita blocos de comando; ( ) lista de argumentos de uma função; /* comentários */ ; termina linha de comando. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 33
Linguagem C conceitos básicos C é "Case Sensitive", isto é, maiúsculas e minúsculas fazem diferença. Se declarar uma variável com o nome soma ela será diferente de Soma, SOMA, SoMa ou soma. Inicie o programa com a chamada do arquivo: <stdio.h> #include <stdio.h> (std = standard, padrão em inglês; io = Input/Output, entrada e saída ==> stdio = Entrada e saída padronizadas). Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 34
Linguagem C conceitos básicos ESTRUTURA DE UM PROGRAMA /* isto é um comentário */ #chamada de biblioteca main () { declaração de variável; comandos; return(0); } Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 35
Linguagem C conceitos básicos Use comentário: /* Um Primeiro Programa */. Todos os programas em C começam com uma função main() #include <stdio.h> /* biblioteca de entrada/saída */ /* Um Primeiro Programa */ int main () { printf ("Ola! Eu estou vivo!\n"); return(0); } Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 36
Linguagem C VARIÁVEIS Tipos de Variáveis: INTEIRO int A; REAL float A; CARACTERE char nome Ex. de Leitura de Caractere char Ch; Ch='D'; printf ("%c",ch); /* imprime como caractere */ printf ("%d",ch); /* Imprime o caracter como inteiro */ /*código ASCII correspondente ao caractere 'D' (d maiúsculo). */ Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 37
Linguagem C LEITURA / ESCRITA GETCHE obtém o caractere de entrada e mostra no vídeo. Ch = getche() GETCHobtém o caractere de entrada, mas mostra no vídeo Ch = getch(c) Chamar a biblioteca: #include <conio.h> Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 38
Linguagem C LEITURA / ESCRITA GETCHAR obtém o caractere de entrada cada vez que é chamada e retorna o mesmo com seu valor. c = getchar() PUTCHAR irá exibir o conteúdo de c na STDOUT putchar(c) Chamar a biblioteca: #include <conio.h> Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 39
Linguagem C Exemplos - LEITURA / ESCRITA #include <stdio.h> #include <conio.h> /* Este programa usa conio.h */ int main () { char Ch; Ch=getch(); /* não é padrão ANSI */ putchar(ch); return(0); } Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 40
Linguagem C Exemplos - LEITURA / ESCRITA #include <stdio.h> #include <conio.h> #include <cstdlib> int main () { char Ch1,Ch2,c; printf("entre com um valor: "); Ch1=getche(); /* mostra o que esta sendo digitado */ c=getchar(); /* zerar a memória */ printf("entre com um valor: "); Ch2=getch(); /* nao mostra o que esta sendo digitado */ printf("\n caracteres digitados: %c %c\n",ch1,ch2); printf("\n valores digitados: %d %d\n",ch1,ch2); system("pause"); return(0); } Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 41
Linguagem C LEITURA / ESCRITA FORMATADA SCANF lê caracteres de entrada padrão, interpretando-os de acordo com o formato especificado em argumentos de controle. scanf ( %d, &num); PRINTF imprime seus argumentos na saída padrão, sob o controle do formato especificado. printf ( o numero eh %d \n, num); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 42
Linguagem C LEITURA / ESCRITA FORMATADA Caracteres de conversão: d espera-se um inteiro decimal na entrada. o - espera-se um inteiro octal. x - espera-se um inteiro hexa. c espera-se um único caractere na entrada. s - espera-se uma cadeia de caracteres na entrada. f - espera-se um número de ponto flutuante. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 43
Linguagem C LEITURA / ESCRITA Função de leitura scanf(). Exemplo: scanf("%d",&dias); "%d" leitura de um inteiro. &Dias colocar o valor lido na variável Dias Função de escrita printf(). Exemplo: printf ("\n\n%d dias \n",dias); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 44
Linguagem C Exemplos - LEITURA / ESCRITA #include <cstdlib> /* biblioteca de chamada de sistema */ #include <iostream> int main() { int x; scanf("%d",&x); printf("%d",x); } system("pause"); return EXIT_SUCCESS; Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 45
Linguagem C LEITURA / ESCRITA FORMATADA #include <stdio.h> #include <conio.h> /* Este programa usa conio.h */ int main2 () { char Ch; scanf (%c, &Ch) /* padrão ANSI */ printf ("Voce pressionou a tecla %c",ch); return(0); } Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 46
STRING: Strings são vetores de chars. As strings devem ser igualadas elemento a elemento. Sintaxe: char nome_da_string [tamanho]; FUNÇÕES: USO DO STRING gets() lê uma string do teclado. Sintaxe: gets (nome_da_string); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 47
Declaração: char nome[ ] = "Maria da Silva"; Funções: USO DO STRING strlen - retorna o tamanho, em caracteres, de uma string dada. Sintaxe: s = strlen (nome); strcpy - copia o conteúdo de uma string para outra e coloca um terminador de string. Sintaxe: strcpy (destino, origem); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 48
USO DO STRING Funções: strcat - concatena duas strings, adicionando o conteúdo da segunda ao final da primeira, além do terminador (\0). Sintaxe:strcat (nome, nome2); strncat especifica o número de caracteres a serem copiados. Sintaxe:strncat (nome, nome2,3); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 49
USO DO STRING Funções: strcmp - compara os endereços de memória onde estão guardadas as strings. Sintaxe: int strcmp (char *s1, char *s2); O valor de retorno é: menor que zero se s1 for menor que s2; igual a zero se s1 e s2 são iguais; maior que zero se s1 for maior que s2. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 50
USO DO STRING Funções: As variantes mais usadas de strcmp são: strncmp - compara apenas os n primeiros caracteres das duas strings, sendo n um terceiro argumento. stricmp - compara duas strings sem distinção entre maiúsculas e minúsculas. Obs. A sintaxe é igual à de strcmp. Essa função não faz parte da biblioteca padrão, mas é comumente encontrada como extensão particular de várias delas. Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 51
Linguagem C LEITURA / ESCRITA NOME #include <stdio.h> #include <cstdlib> int main () { char nome[100]; printf ("Digite um nome: "); gets (nome); printf ("\n\nvoce digitou %s\n",nome); system("pause"); return(0); } Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 52
Linguagem C LEITURA / ESCRITA NOME #include <stdio.h> #include <cstdlib> #include <string.h> int main () { char nome[100]; } int s; printf ("Digite um nome: "); gets (nome); printf ("\n\nvoce digitou %s\n",nome); s = strlen (nome); printf ("\n\n%s Tem %d caracteres\n",nome,s); system("pause"); return(0); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 53
Linguagem C LEITURA / ESCRITA NOME #include <stdio.h> #include <cstdlib> #include <string.h> int main () { } char nome[100],nome1[100]; printf ("Digite um nome: "); gets (nome); printf ("\n\nvoce digitou %s\n",nome); strcpy (nome1,nome); printf ("\n\n Copia...%s\n",nome1); system("pause"); return(0); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 54
... Linguagem C LEITURA / ESCRITA NOME int main () { char nome[100],nome1[100],str2[100];... } printf ("Digite um sobrenome: "); gets (nome1); strcpy (str2," "); strcat (str2,nome1); strcat (nome,str2); printf ("\n\n Nome completo...%s\n",nome);... Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 55
Linguagem C LEITURA / ESCRITA NOME... int main () {... }... if (strcmp(nome,nome1)) printf ("\n\nnomes diferentes\n "); else printf ("\n\nnomes são iguais.\n"); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 56
Conceitos Básicos OPERADORES DE INCREMENTO / DECREMENTO SOMA ++ ++n incrementa antes de usar o valor n++ incrementa após usar o valor Ex. n = 5; x = n++ /* atribue 5 a x */ x = ++n /* atribue 6 a x */ Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 57
Conceitos Básicos OPERADORES DE INCREMENTO / DECREMENTO SUBTRAÇÃO -- --n decrementa antes de usar o valor n-- decrementa após usar o valor Ex. n = 5; x = n-- /* atribue 5 a x */ x = --n /* atribue 4 a x */ Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 58
Conceitos Básicos - resumo LEIA UMA VARIÁVEL E IMPRIMA PROBLEMA ALGORITMO LING. C #include <stdio.h> #include <cstdlib> LER/IMP algoritmo LER/IMP int main () Inicio { var num: real int n; escreva( qual o numero? ); printf ("qual o valor do numero"); Leia num leia num scanf ("%d", &n); Escreva num escreva ( numero =, num); printf ("valor do numero %d\n",n); fimalgoritmo } system("pause"); return(0); Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 59
Algoritmo SENTENÇAS E BLOCOS sentenças são seguidas de ; x = 0; x++; as chaves { e } são usadas para agrupar declarações e sentenças dentro de uma sentença composta ou blocos Exercício de fixação passe para a linguagem C a lista 1 Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 60