Baixe o app para aproveitar ainda mais
Prévia do material em texto
TT214 – Linguagem e Técnica de Programação I 1º Semestre – 2013 Prof. Suelen Mapa de Paula 1 Aula 2 Contatos Suelen Mapa de Paula suelenmapa@gmail.com suelen@dca.fee.unicamp.br Monitor: ??? 2 Ementa da aula Algoritmos e Programas de Computador: Revisão; Linguagens de Programação; Compiladores e Interpretadores; Introdução à Linguagem C: Introdução; Primeiro programa em C; Aspectos Fundamentais da Linguagem C; Exercícios; Referências. ** Este material foi baseado nas aulas do professor Guilherme Coelho, sob a autorização do mesmo. 3 Algoritmos e Programas de Computador: 4 Etapas para desenvolvimento de um programa. O desenvolvimento de um programa de computador obrigatoriamente deve passar por três etapas: 1. Análise: nesta etapa estuda-se o enunciado do problema que se quer resolver para que sejam definidos: Os dados de entrada; O processamento que deverá ser feito; Os dados de saída; 2. Elaboração do algoritmo: definição da sequência de passos que deverá ser realizada para que o objetivo seja atingido; 3. Codificação: consiste na transformação do algoritmo em códigos de uma linguagem de programação escolhida. 5 Etapas para desenvolvimento de um programa. 6 1) Análise do problema Dados de entrada: N1 e N2 Processamento: soma ( + ) Dados de saída: resultado 2) Algoritmo: Fluxograma Início Resultado = N1+ N2 Resultado N1, N2 Recebe os valores de entrada Exibe o resultado Fim Problema: “Precisamos realizar a soma de dois números quaisquer”. 3) Codificação em Linguagem C Problema: “Precisamos realizar a soma de dois números quaisquer”. 7 #include<stdio.h> int main (){ int N1, N2, Resultado; printf("Informe os valores de N1 e N2"); scanf("%d %d", &N1,&N2); Resultado = N1 + N2; printf("O resultado da soma eh: %d",Resultado); } Como transformar um algoritmo em um programa de computador? É preciso usar uma linguagem que o computador entenda; Tal linguagem deve ser capaz de expressar tudo que o computador pode fazer; Não pode ser ambígua. 8 Linguagem de Programação Programas Linguagem de máquina: conjunto de instruções que podem ser interpretadas e executadas diretamente pela CPU (códigos binários); O que o computador entende Linguagem de Programação: sintaxe e semântica utilizada para escrever um programa. o que o programador usa Linguagem de baixo nível (assembly): linguagem de programação baseada em mnemônicos, dependente do tipo de máquina e de fácil tradução para a linguagem de máquina. Linguagem de alto nível: linguagem de programação que independe do conjunto básico de instruções da linguagem de máquina (C, Java, Python,...); 9 Programas Um computador só executa programas em linguagem de máquina; Como um programa em linguagem de alto nível (ou de montagem) poderia ser executado? Isto é feito por: Compiladores; ou Interpretadores. 10 É preciso convertê-lo! Compiladores Compilador: programa que traduz os programas escritos em uma dada linguagem de programação para linguagem de máquina; 11 Programa Fonte Compilador Programa Executável Sistema Operacional CPU Geração do Programa Executável: Programa Executável Sistema Operacional CPU Execução do Programa: Interpretadores Interpretador: programa que executa diretamente os programas escritos em uma dada linguagem de programação; 12 Execução do Programa: Programa Fonte Interpretador Sistema Operacional CPU • Programas interpretados tendem a ser mais lentos; • Por outro lado, podem ser alterados durante a execução. Introdução a linguagem C 13 A linguagem C Composta por instruções, que consistem em termos semelhantes a expressões algébricas, com palavras chaves em inglês. Desenvolvida a partir de duas linguagens anteriores, a BCPL e B, criadas no final da década de 60. Criada por Dennis Ritchie e Brian W. Kernighan, em 1972, no centro de pesquisa da Bell Laboratories. 14 A linguagem C C é uma linguagem de programação estruturada: Um programa em C é composto por blocos elementares que são interligados através de três mecanismos básicos: Sequência: implementa os passos necessários para descrever qualquer programa; Seleção: especifica a possibilidade de selecionar o fluxo de execução a partir de ocorrências lógicas. Iteração: permite a execução repetitiva de segmentos do programa. 15 Primeiro programa em C Um programa em C é um arquivo texto, chamado código-fonte, que contém a tradução de um algoritmo para a linguagem C; Este arquivo contém as declarações e as instruções do programa, escritas conforme a sintaxe da linguagem. 16 /*Meu primeiro programa em C*/ #include <stdio.h> int main() { printf(“Hello, world!\n”); return 0; } Salvo no arquivo hello.c Primeiro programa em C 17 /*Meu primeiro programa em C*/ #include <stdio.h> int main() { printf(“Hello, world!\n”); return 0; } Salvo no arquivo hello.c Comentário Função principal do programa Informa o compilador para incluir a biblioteca padrão de entrada/saída (stdio.h) Função que imprime texto na tela Primeiro programa em C 18 Todas as instruções devem estar dentro das chaves que iniciam e encerram a função (“{“ e “}”); São executadas na ordem em que são escritas. As instruções em C sempre são encerradas com ponto-e-vírgula (“;”); Os parâmetros ou argumentos de uma instrução são passados dentro dos parêntesis (vide printf()). /*Meu primeiro programa em C*/ #include <stdio.h> int main() { printf(“Hello, world!\n”); return 0; } Caractere especial que Indica uma “quebra de linha” Primeiro programa em C 19 Comentários em um programa correspondem a porções de texto que são desconsideradas pelo compilador ou interpretador; Servem para documentar o código-fonte; A linguagem C prevê dois tipos de comentários; Comentários de múltiplas linhas (entre /* e */): /* Este comentário pode ocupar mais de uma linha do arquivo-fonte. */ Comentários de uma única linha (iniciados com //): // Este comentário deve estar contido em uma única linha Primeiro programa em C Para executar o programa hello.c, o primeiro passo é compilar o código-fonte, para que o executável seja gerado; O compilador é executado como qualquer outro programa; Supondo um ambiente Linux/Unix e o compilador gcc (GNU C Compiler), o programa anterior seria compilado e executado com os seguintes comandos: $ gcc hello.c –o hello $ ./hello Hello, world! Chamada do compilador Nome do arquivo-fonte (entrada) Nome do arquivo executável (saída), indicado pela opção -o Execução do programa Saída do programa Primeiro programa em C O compilador C para o ambiente Windowns é o MinGw. (É a versão gcc para windowns). Para este caso, o processo de compilação é muito similar: 21 Diretorio> gcc hello.c –o helloDiretorio> hello Hello, world! Chamada do compilador Nome do arquivo-fonte (entrada) Execução do programa Nome do arquivo executável (saída), indicado pela opção -o Saída do programa Primeiro programa em C Informações de como instalar e configurar os compiladores podem ser encontrados em: MinGW:http://www.franciscosouza.com.br/2009/04/07/instaland o-um-compilador-cc-no-windows/ GCC : http://gcc.gnu.org/wiki/InstallingGCC 22 Apesar de não ser mandatório o uso desses softwares, recomendo que os mesmos sejam utilizados, para que vocês tenham um ambiente semelhante ao que teremos nas aulas práticas, e que será utilizado para a correção de trabalhos e exercícios. Vocês podem utilizar outras ferramentas de edição de programas (por exemplo: Code::Blocks, Visual C/C++, Borland C/C++, Eclipse, Xcode, Emacs, Vim, ....), mas o ideal é que o compilador utilizado seja o GCC. Problemas: erros de compilação 23 Quando o programa não está de acordo com as regras da linguagem, o compilador retornará uma lista de erros e não gerará o arquivo executável; É importante compreender as mensagens de erro e fazer as correções no código-fonte. /*Meu primeiro programa em C*/ #include <stdio.h> int main() { printf(“Hello, world!\n”); return 0; C:\Aula 2\Programas> gcc hello.c -o hello hello.c: In function 'main': hello.c:6:2: error: expected declaration or statement at end of input Problemas: erro de execução 24 Quando o programa não apresenta o comportamento esperado, mesmo que a compilação não tenha resultado em erros, diz-se que ocorreu um erro de execução; Alguns tipos de erros de execução: A saída retornada não é a saída correta; A execução do programa é encerrada abruptamente; A execução não termina nunca (loop infinito); ... Para auxiliar na localização de fontes de erros de execução, existem os depuradores (debuggers), que executam o programa passo a passo. Exercícios 25 1. Escreva o programa exemplo1.c apresentado abaixo em um editor de textos (puro), compile-o usando o gcc e execute-o. /*Meu primeiro programa em C*/ #include <stdio.h> int main() { printf(“Bem-vindo à disciplina TT214!\n”); return 0; } Salvo no arquivo exemplo1.c Exercícios 26 2. Modifique o programa anterior de forma a escrever cada palavra da frase “Bem-vindo à disciplina TT214!” usando uma chamada para a função printf(). 3. Modifique o programa anterior para que cada palavra da frase “Bem-vindo à disciplina TT214!” seja escrita em uma linha. 4. Modifique o programa anterior para que cada letra da frase “Bem-vindo à disciplina TT214!” seja escrita em uma linha. Utilize apenas um comando printf(). Aspectos fundamentais da linguagem C 27 Variáveis Variável: é um local na memória principal ou um nome que se dá a endereços de memória. Contêm um nome para referenciar o seu conteúdo; Armazenam um valor por vez, mas podem assumir vários valores ao longo do tempo; O conteúdo de uma variável pode ser de vários tipos: inteiro, real, caracter, lógico e entre outros. Declarando uma variável em C Atribuindo valor a variável num: 28 tipo da variável nome da variável; int num; Declara uma variável chamada “num”, que armazena valores do tipo inteiro (números inteiros) num = 3; Variáveis Quando for dar nomes às variáveis, se faz necessário: 1. O 1º caractere é uma letra; 2. Se houver mais de uma caractere, só podemos usar: letra, algarismos ou sublinhado (_). 3. Nomes de variáveis escritas com letras maiúsculas serão diferentes de letras minúsculas. 4. não são permitidos espaços em branco e caracteres especiais (@, $, +, -, %, !, etc). 5. Nenhuma palavra reservada (ou nome de uma função declarada pelo programador) poderá ser nome de uma variável 29 Palavras reservadas em C 30 Exercícios 31 5. Dentre os nomes de variáveis abaixo, indique quais são aceitos pelo compilador da linguagem C e quais não são: 3ab ab3 a3b FIM sim int \meu A nao A123 papel-branco a* c++ *nova_variavel Variáveis Exemplo de programa: 32 #include <stdio.h> int main(){ int num; num = 10; printf("O programa B imprime o número %d\n”, num); return 0; } • A saída deste programa será: O Programa B imprime o número 10 Tipos de Variáveis 33 A linguagem C possui os seguintes tipos básicos de variáveis: char: guarda um caractere; int: guarda um número inteiro; float: guarda um valor real com certa precisão; double: guarda um valor real com precisão maior que a de float; void: tipo vazio (sem valor). Tipos de variáveis 34 Além dos 5 tipos básicos listados no slide anterior, existem também algumas variações: unsigned char: caractere sem sinal (lembrar que um caractere pode ser interpretado como um número); long int: número inteiro com domínio ampliado; unsigned int: número inteiro sem sinal (positivo); unsigned long int: número inteiro sem sinal com domínio ampliado; short int: número inteiro com domínio reduzido; unsigned short int: número inteiro sem sinal com domínio reduzido. Tipos de variáveis 35 Todos os tipos de dados definidos pelo padrão ANSI Tipos de variáveis As especificações de cada tipo de variáveis dependem da arquitetura do computador; Exemplo para um processador Pentium IV: 36 Variáveis de ponto flutuante 37 Números em ponto flutuante (float, double) são usados para representar “números reais”; No computador, números em ponto flutuante são representados de forma similar à notação científica: Ex.: +31.600.000 = +0,316 × 108 Números em ponto flutuante são divididos em três partes: + ,3160000 8 Sinal Fração (ou mantissa) Expoente 3 bytes 1 byte Supondo 4 bytes: Variáveis ponto flutuante 38 Como o número de bits disponível para representar a mantissa é finito, a precisão que se consegue representar em computador também é limitada. São feitos “arredondamentos” em operações aritméticas; #include <stdio.h> int main(){ float a = 1000.43; float b = 1000.0; printf("%f\n",a - b); return 0; } • A saída deste programa será: 0.429993 Inicialização de variáveis 39 A inicialização de uma variável pode ser feita tanto através de uma atribuição (após a sua declaração) quanto em sua própria declaração: #include <stdio.h> int main(){ int evento ; char corrida; float tempo = 27.25; evento = 5; corrida = ’C’; printf("O tempo vitorioso na eliminatória %c",corrida); printf("\nda competição %d foi %f.\n", evento, tempo); return 0; } O tempo vitorioso na eliminatória C da competição 5 foi 27.250000. A importância dos nomes das variáveis 40 #include <stdio.h> int main(){ int abacaxi = 783; float acerola = 2500.00; float pitanga = 3750.00; float melancia = acerola + pitanga; printf(“O valor calculado é: %f\n”, melancia); return0; } O que faz o programa abaixo? A importância dos nomes das variáveis 41 #include <stdio.h> int main(){ int codigoDoFuncionario = 783;float salarioBase = 2500.00; float comissoesRecebidas = 3750.00; float salarioDoMes = salarioBase + comissoesRecebidas; printf(“O valor calculado é: %f\n”, salarioDoMes); return0; } O que faz o programa abaixo? O nome de cada variável deve indicar claramente sua função! Exercícios 42 6. Corrija o seguinte programa: 7. Compile o programa abaixo, veja as mensagens de erro geradas e corrija-o. #include <stdio.h> int main{}( printf(Existem %d semanas no ano., 56) return0; ) #include <stdio.h> int Main(void){ int a=1; b=2; c=3; printf("Os números são: %d, %d e %d\n, a, b, c, d) } Constantes 43 Uma constante, como o próprio nome diz, tem valor fixo e inalterável. Ex.: ‘c’ – é um caractere simples; 8 – número inteiro de valor 8; ‘8’ – corresponde ao caractere 8 (e não ao número inteiro); “Primeiro programa” – cadeia de caracteres (string); Constantes 44 Exemplo de programa: #include <stdio.h> int main(){ printf("O programa A imprime o número 2\n"); printf("O programa %c imprime o número 2\n",’A’); printf("O programa A imprime o número %d\n",2); printf("O programa %c imprime o número %d\n",’A’,2); printf("O programa %c %s %d\n",’A’,"imprime o número",2); return 0; } • A saída será: O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 Constantes 45 Exemplo de programa: #include <stdio.h> int main(){ printf("O programa A imprime o número 2\n"); printf("O programa %c imprime o número 2\n",’A’); printf("O programa A imprime o número %d\n",2); printf("O programa %c imprime o número %d\n",’A’,2); printf("O programa %c %s %d\n",’A’,"imprime o número",2); return 0; } • A saída será: O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 Constantes 46 Exemplo de programa: #include <stdio.h> int main(){ printf("O programa A imprime o número 2\n"); printf("O programa %c imprime o número 2\n",’A’); printf("O programa A imprime o número %d\n",2); printf("O programa %c imprime o número %d\n",’A’,2); printf("O programa %c %s %d\n",’A’,"imprime o número",2); return 0; } • A saída será: O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 Constantes 47 Exemplo de programa: #include <stdio.h> int main(){ printf("O programa A imprime o número 2\n"); printf("O programa %c imprime o número 2\n",’A’); printf("O programa A imprime o número %d\n",2); printf("O programa %c imprime o número %d\n",’A’,2); printf("O programa %c %s %d\n",’A’,"imprime o número",2); return 0; } • A saída será: O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 Constantes 48 Exemplo de programa: #include <stdio.h> int main(){ printf("O programa A imprime o número 2\n"); printf("O programa %c imprime o número 2\n",’A’); printf("O programa A imprime o número %d\n",2); printf("O programa %c imprime o número %d\n",’A’,2); printf("O programa %c %s %d\n",’A’,"imprime o número",2); return 0; } • A saída será: O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 Constantes 49 #include <stdio.h> int main(){ printf("O programa A imprime o número 2\n"); printf("O programa %c imprime o número 2\n",’A’); printf("O programa A imprime o número %d\n",2); printf("O programa %c imprime o número %d\n",’A’,2); printf("O programa %c %s %d\n",’A’,"imprime o número",2); return 0; } • A saída será: O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 O Programa A imprime o número 2 O programa A imprime o número 2 Exemplo de programa: A função printf() 50 Como já vimos, a função printf() permite, dentre outras coisas, imprimir informações na tela; Faz parte da biblioteca padrão de C (stdio.h); Pode receber um ou mais parâmetros, separados por vírgulas; Permite o uso de caracteres especiais; Ex.: \n (insere uma quebra de linha) Também chamados de caracteres de escape; Permite o uso de códigos para impressão formatada (códigos que são substituídos por valores com uma dada formatação); Ex.: %d (é substituído por um valor inteiro). A função printf() 51 Caracteres especiais da função printf(): Caractere Significado \a Caractere de alerta (emite som no computador) \b Retrocesso (backspace) \f Alimentação de formulário \n Nova linha \r Retorno de carro (volta para o início da linha) \t Tabulação horizontal \v Tabulação vertical \\ Barra invertida \? Ponto de interrogação \’ Aspas simples (apóstrofo) \” Aspas duplas A função printf() 52 Códigos de impressão formatada printf(): Código Formato %c Caractere simples %d Número inteiro com sinal %e Número em notação científica %f Número em ponto flutuante %o Número octal (base 8) %x Número hexadecimal (base 16) %s Cadeia de caracteres (string) %u Número inteiro sem sinal %ld Número inteiro longo com sinal %lf Número em ponto flutuante longo (double) A função printf() 53 Através dos códigos de impressão formatada, é possível definir também: O tamanho mínimo para impressão de um campo; A precisão e o arredondamento em campos de ponto flutuante; O alinhamento à direita ou à esquerda; A complementação com zeros à esquerda. A função printf() 54 #include <stdio.h> int main(){ printf("Os alunos são %d.\n",350); printf("Os alunos são %6d.\n",350); printf("Os alunos são %06d.\n",350); printf("%f\n%f\n", 3456.78, 6.78); printf("%10.1f\n%10.1f\n", 3456.78, 6.78); printf("%-10.3f\n%-10.3f\n", 3456.78, 6.78); return 0; } Os alunos são 350. Os alunos são 350. Os alunos são 000350. 3456.780000 6.780000 3456.8 6.8 3456.780 6.780 A função printf()- caracteres 55 Em C, um caractere pode ser representado de diversas maneiras: O próprio caractere, entre aspas simples; ou Sua representação numérica (código ASCII) em decimal (base 10), hexadcecimal (base 16) ou octal (base 8); Valor hexadecimal: sempre começa com 0x Ex.: 0x41 Valor octal: sempre começa com 0 Ex.: 0701 O código ASCII (American Standard Code for Information Interchange) é um padrão internacional que associa um código numérico a cada caractere: Codifica 256 caracteres diferentes; http://www.asciitable.com/ A função printf()- caracteres 56 Exemplo: #include <stdio.h> int main(){ printf(“%d %c %x %o\n", ’A’ , ’A’ , ’A’ , ’A’); printf(“%c %c %c %c\n", ’A’ , 65 , 0x41 , 0101); return 0; } 65 A 41 101 A A A A • Saída: A função scanf() 57 A função scanf()é uma função de leitura: Permite a leitura de dados formatados da entrada padrão (teclado); Também faz parte da biblioteca padrão de C (stdio.h); Aguarda a digitação dos dados pelo usuário e atribui o valor digitado a uma variável; #include <stdio.h> int main(){ int n; printf("Digite um número e pressione Enter: "); scanf("%d",&n); printf("O valor digitado foi %d\n",n); return 0; } A função scanf() 58 A função scanf() usa os mesmos códigos de formatação de printf(); Código Formato %c Caractere simples %d Número inteiro com sinal %e Número em notação científica %f Número em ponto flutuante %o Número octal (base 8) %x Número hexadecimal (base 16) %s Cadeia de caracteres (string) %u Número inteiro sem sinal %ld Número inteiro longo com sinal %lf Número em ponto flutuante longo (double) A função scanf() 59 A função scanf() prevê os seguintes parâmetros: Uma expressão de controle (no formato de cadeia de caracteres); Usando os mesmos códigos de formatação de printf(); Um ou mais argumentos separados por vírgula; Estes argumentos correspondem aos endereços das variáveis onde serão salvos os dados; Endereço de uma variável = endereço da posição de memória a ela associada. Endereço de uma variável: dado pelo operador & (address-of). Exemplo: scanf("%d",&n); O operador address-of (&) 60 Exemplo: #include <stdio.h> int main(){ int n = 8; printf(“Valor: %d, Endereço: %u\n",n, &n); return 0; } Valor: 8, Endereço: 3221217828 • Saída (o endereço pode mudar a cada execução): Exemplo: scanf() e address-of (&) 61 Exemplo: #include <stdio.h> int main(){ float anos, dias; printf(“Digite sua idade em anos: "); scanf("%f",&anos); dias = anos * 365; printf("Sua idade em dias é %.0f.\n", dias); return 0; } Digite sua idade em anos: 22.13 Sua idade em dias é 8077. • Saída: Outras funções de entrada e saída (E/S) 62 Tarefa para casa: Estude o funcionamento das seguintes funções de E/S da linguagem C: getchar(); putchar(); Entenda como cada uma funciona, quais são as diferenças entre elas e o que foi visto anteriormente e implemente alguns pequenos programas de teste. Operadores aritméticos 63 Como o próprio nome sugere, operadores aritméticos são responsáveis pela execução de operações aritméticas entre constantes e variáveis; A linguagem C oferece 06 operadores aritméticos binários (que operam sobre dois operandos) e 01 operador aritmético unário (opera sobre um único operando): Operadores aritméticos - exemplo 64 #include <stdio.h> int main(){ int a, b, c; a = 4; b = 3; c = (a * b)/2; printf("Variável \'a\' tem valor: %d\n", a); printf("Variável \'b\' tem valor: %d\n", b); printf("Variável \'c\' tem valor: %d\n", c); printf(”Resto da div. entre a e b é: %d\n", a % b); printf("O valor de \'-b\' é: %d\n", -b); return 0; } Variável 'a' tem valor: 4 Variável 'b' tem valor: 3 Variável 'c' tem valor: 6 Resto da div. Entre a e b é: 1 O valor de '-b' é: -3 Operadores de incremento/decremento 65 C possui também dois operadores unários que permitem incrementar ou decrementar seus operandos: Operador de incremento: ++; Operador de decremento: --; Estes operadores podem funcionar em dois modos: Pré-fixado: são colocados antes do operando; Ex.: ++n (neste caso a variável n é incrementada antes do seu valor ser usado); Pós-fixado: são colocados depois do operando; Ex.: n-- (neste caso a variável n é decrementada depois do seu valor ter sido usado); Operadores de incremento/decremento 66 #include <stdio.h> int main(){ int a, b; b = 3; a = b++; printf("Pós-incremento: \'a\' tem valor: %d\n", a); printf("Variável \'b\' tem valor: %d\n", b); a = ++b; printf("Pré-incremento: \'a\' tem valor: %d\n", a); printf("Variável \'b\' tem valor: %d\n", b); return 0; } Pós-incremento: 'a' tem valor: 3 Variável 'b' tem valor: 4 Pré-incremento: 'a' tem valor: 5 Variável 'b' tem valor: 5 Precedência de operadores aritméticos 67 Uma expressão aritmética em C como a+b*c será avaliada como a + (b*c), pois existe uma precedência entre os operadores; Esta precedência é definida na seguinte ordem: *, / (maior precedência) % +, - (menor precedência) Operadores de incremento/decremento têm precedência maior que operadores aritméticos: Ex.: a*++b é avaliado como (a)*(++b); Precedência de operadores aritméticos 68 #include <stdio.h> int main(){ int a = 2; int b = 3; int c = a-++b*3; printf(”c=%d\n", c); printf(”b=%d\n", b); return 0; } c=-10 b=4 Operadores relacionais 69 Operadores relacionais são usados para fazer comparações; São eles: Operadores relacionais retornam valores inteiros com significado lógico: 1 = “verdadeiro”; 0 = “falso”; Cuidado para não usar “=“ ao invés de “==“! Operadores relacionais 70 #include <stdio.h> int main(){ int verdad, falso; verdad = ( 15 < 20 ); falso = ( 15 == 20 ); printf("Verdadeiro = %d, falso = %d\n",verdad, falso); return 0; } Verdadeiro = 1, falso = 0 Precedência de operadores relacionais 71 A precedência de um operador relacional é mais baixa que a dos operadores aritméticos; Ou seja, eles são avaliados após os operadores aritméticos; Ex.: 3+5==5 é avaliado como (3+5) == 5 Exercícios 72 8. Segundo o plano da disciplina TT214, a média final de um aluno é dada por: (P1 + P2 + T)/3. Implemente um programa que leia as notas de P1, P2 e T de um dado aluno e imprima sua média final. Atenção: cuidado para que a divisão por 3 seja feita na soma das notas, e não apenas em um dos termos. 9. Faça um programa que leia um caractere do teclado e imprima o caractere seguinte (posterior) na tela. Dica: veja o que acontece ao se adicionar um valor numérico inteiro a uma variável do tipo caractere. Ex.: entrada = a, saída = b 10. Escreva um programa que recebe como entrada uma temperatura (número real) em graus Celsius e a transforme para Farenheit. Lembre-se que TFarenheit = TCelsius ∗1.8 + 32. Exercícios 73 11. Faça o inverso do exercício 10, ou seja, escreva um programa que recebe como entrada uma temperatura (número real) em graus Farenheit e a transforme para Celsius. 12. Escreva um programa em C que receba a idade do usuário em anos e imprima na tela sua idade em minutos (desconsidere a existência de anos bissextos). Referências 74 Coelho, Guilherme Palermo . Notas de Aula de Algoritmos e Programação de Computadores I, Faculdade de Tecnologia, Unicamp, 2013, Tópico I. Mizrahi, V. V., Treinamento em Linguagem C – Módulo 1, Makron Books, São Paulo, 1995.
Compartilhar