Baixe o app para aproveitar ainda mais
Prévia do material em texto
Palavras Reservadas. A linguagem C possui um total de 32 palavras conforme definido pelo padrão ANSI, que são elas: break case char const default do double else float for if int long return switch while // Calcular o comprimento da circunferência de raio ” r ” // /*main() //mostra o inicio do programa// { float circulo, raio; //declaração das variáveis// float pi; // declaração de variáveis// printf("Entre com o valor do raio "); // mensagem impressa no monitor // scanf("%f",&raio); // entra valor para variável // raio = 20; //atribuindo valores para variável // pi = 3.14; // atribuindo valores para variável // circulo = 2 * pi * raio; //calculando o comprimento da transferência e atribuindo para variável local circulo// printf("\n Comprimento da Circunferencia : %f \n",circulo); system("pause"); } //Fazer um algoritmo para ler o raio, calcular e mostrar a área do circulo. // main() { float raio, area; printf("\n Raio = "); scanf("%f",&raio); area = 3.1415 * pow(raio,2); printf("\n Area = %5.2f",area); system("pause"); } // Operadores Aritméticos • () Muda a prioridade aritmética; • * Multiplicação; • / Divisão; • - Subtração; • + Soma; • % Resto da divisão inteira; Atenção na prioridade aritmética, grande número de erros de programação se encontra no mau uso dos seus operadores. Importante: • Quando se deseja imprimir ou armazenar um conjunto de caracteres (palavra), ou seja, uma string, o conteúdo deve estar entre aspas duplas, Ex: “A vaca foi para o Brejo”; • Quando se deseja armazenar ou imprimir um único caracter (letra ou único símbolo), o mesmo deve estar entre aspas simples. Ex: ‘A’; • Se for um número, não se usa nada, somente o próprio número, Ex: 10; Comando de Saída de Tela • printf(<Expr>); – Somente imprime na tela o que estiver especificado entre aspas “ “; – Para imprimir valores (números) deve-se utilizar caracteres de controle; – As expressões devem ser separadas por ; Caracteres de Controle ( + utilizados) • %c Imprime um caracter; • %d Imprime um decimal inteiro com seu devido sinal; • %f Imprime um número de ponto flutuante de precisão simples (bastante grande); • %s Imprime uma string (conjunto de caracteres); • %% Imprime o símbolo %. Exemplo, usando printf . main() { printf(“Esse é o meu primeiro programa”); printf(“%c é uma letra”, ‘j’); printf(“%d é um número inteiro”, 30); printf(“%f é um número de ponto flutuante”, 12.2); printf(“%5.2f é um número de ponto flutuante formatado”, 12.2); printf(“%s é legal”, “linguagem C”); printf(“%d + %d = %d”, 10, 21, 10+21); } Tipos de dados Primitivos (Variáveis - Básicas) • A linguagem C possui apenas 4 tipos de dados primitivos, e mais uma grande variedade de tipos compostos (vistos mais tarde). Os tipos de dados abaixo reservam espaços na memória do computador para armazenar dados: – char um único caracter; – int um número inteiro; – float um número de ponto flutuante simples; – double um número de ponto flutuante de dupla precisão; – void não é um tipo de dado, mas informa sem • Todas variáveis devem ser declaradas no inicio do programa, para que o compilador possa reservar esses espaços de memória na RAM do computador. Ex: int i; double d, dNumero, Numero; char Letra;Exemplo usando Variáveis void main(void) { int i, j; i = 2; j = 3; printf(“Esse é o meu segundo programa”); printf(“%d + %d = %d”, i, j, i+j); i = i + 1; printf(“%d”, i ); i = i + j; printf(“%d”, i ); } Comando de Entrada de Dados • scanf(<Expr>); – Deve-se possuir variáveis para armazenar a entrada de dados; – Somente obtém o que estiver especificado entre “ “ (parecido com o printf); – As expressões devem ser separadas por vírgula; – Os caracteres de controle são equivalentes ao do printf; – Quando solicitar a variável você deverá colocar o símbolo & antes da mesma (isso será visto mais além (ponteiros)).Exemplo usando scanf void main(void) { int i, j; scanf(“%d %d”, &i, &j); printf(“Esse é o meu terceiro programa”); printf(“%d + %d = %d”, i, j, i+j); } Principais Funções do Compilador • Ctrl + F9, compila e executa se tudo ok; • F9, somente compila; • Alt + F5, apresenta o resultado do programa na tela (modo DOS texto). Exemplo. Fazer uma função que receba dois valores e depois some os mesmos. main() { float n1, n2; printf("Digite um numero: "); scanf("%f", &n1); printf("Digite outro numero: "); scanf("%f", &n2); printf("A soma e: %5.1f\n", (n1 + n2)); printf("\n\n\n"); system("pause");} EXERCÍCIOS 1. Faça um algoritmo que receba dois números e exiba o resultado da sua soma. 2. Faça um algoritmo que receba dois números e ao final mostre a soma, subtração, multiplicação e a divisão dos números lidos. 3. Escrever um algoritmo para determinar o consumo médio de um automóvel sendo fornecida a distância total percorrida pelo automóvel e o total de combustível gasto. 4. Escrever um algoritmo que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o seu nome, o salário fixo e salário no final do mês. 5. Escrever um algoritmo que leia o nome de um aluno e as notas das três provas que ele obteve no semestre. No final informar o nome do aluno e a sua média (aritmética). 6. Ler dois valores para as variáveis A e B, e efetuar as trocas dos valores de forma que a variável A passe a possuir o valor da variável B e a variável B passe a possuir o valor da variável A. Apresentar os valores trocados. 7. Ler uma temperatura em graus Celsius e apresentá-la convertida em graus Fahrenheit. A fórmula de conversão é: F=(9*C+160) / 5, sendo F a temperatura em Fahrenheit e C a temperatura em Celsius. 8. Elaborar um algoritmo que efetue a apresentação do valor da conversão em real (R$) de um valor lido em dólar (US$). O algoritmo deverá solicitar o valor da cotação do dólar e também a quantidade de dólares disponíveis com o usuário. 9. Faça um algoritmo que receba um valor que foi depositado e exiba o valor com rendimento após um mês. Considere fixo o juro da poupança em 0,70% a. m. 10. A Loja Mamão com Açúcar está vendendo seus produtos em 5 (cinco) prestações sem juros. Faça um algoritmo que receba um valor de uma compra e mostre o valor das prestações. 11. Faça um algoritmo que receba o preço de custo de um produto e mostre o valor de venda. Sabe-se que o preço de custo receberá um acréscimo de acordo com um percentual informado pelo usuário. 12. O custo ao consumidor de um carro novo é a soma do custo de fábrica com a percentagem do distribuidor e dos impostos (aplicados, primeiro os impostos sobre o custo de fábrica, e depois a percentagem do distribuidor sobre o resultado). Supondo que a percentagem do distribuidor seja de 28% e os impostos 45%. Escrever um algoritmo que leia o custo de fábrica de um carro e informe o custo ao consumidor do mesmo. 13. Faça um algoritmo que receba um número e mostre uma mensagem caso este número seja maior que 10. 14. Escrever um algoritmo que leia dois valores inteiro distintos e informe qual é o maior. 15. Faça um algoritmo que receba um número e diga se este número está no intervalo entre 100 e 200. 16. Escrever um algoritmo que leia o nome e as três notas obtidas por um aluno durante o semestre. Calcular a sua média (aritmética), informar o nome e sua menção aprovado (media >= 7), Reprovado (media <= 5) e Recuperação(media entre 5.1 a 6.9). 17. Ler 80 números e ao final informar quantos número(s) est(á)ão no intervalo entre 10 (inclusive) e 150 (inclusive). 18. Faça um algoritmo que receba a idade de 75 pessoas e mostre mensagem informando “maior de idade” e “menor de idade” para cada pessoa. Considere a idade a partir de 18 anos como maior de idade. 19. Escrever um algoritmo que leia o nome e o sexo de 56 pessoas e informe o nome e se ela é homem ou mulher. No final informe total de homens e de mulheres. 20. A concessionária de veículos “CARANGO VELHO” está vendendo os seus veículos com desconto. Faça um algoritmo que calcule e exiba o valor do desconto e o valor a ser pago pelo cliente de vários carros. O desconto deverá ser calculado de acordo com o ano do veículo. Até 2000 - 12% e acima de 2000 - 7%. O sistema deverá perguntar se deseja continuar calculando desconto até que a resposta seja: “(N) Não” . Informar total de carros com ano até 2000 e total geral. 21. Escrever um algoritmo que leia os dados de “N” pessoas (nome, sexo, idade e saúde) e informe se está apta ou não para cumprir o serviço militar obrigatório. Informe os totais. 22. Faça um algoritmo que receba o preço de custo e o preço de venda de 40 produtos. Mostre como resultado se houve lucro, prejuízo ou empate para cada produto. Informe media de preço de custo e do preço de venda. 23. Faça um algoritmo que receba um número e mostre uma mensagem caso este número sege maior que 80, menor que 25 ou igual a 40. 24. Faça um algoritmo que receba “N” números e mostre positivo, negativo ou zero para cada número. 25. Faça um algoritmo que leia dois números e identifique se são iguais ou diferentes. Caso eles sejam iguais imprima uma mensagem dizendo que eles são iguais. Caso sejam diferentes, informe qual número é o maior, e uma mensagem que são diferentes. 26. Faça um algoritmo que leia um número de 1 a 5 e escreva por extenso. Caso o usuário digite um número que não esteja neste intervalo, exibir mensagem: número inválido. 27. A concessionária de veículos “CARANGO” está vendendo os seus veículos com desconto. Faça um algoritmo que calcule e exiba o valor do desconto e o valor a ser pago pelo cliente. O desconto deverá ser calculado sobre o valor do veículo de acordo com o combustível (álcool – 25%, gasolina – 21% ou diesel –14%). Com valor do veículo zero encerra entrada de dados. Informe total de desconto e total pago pelos clientes. 28. Escrever um algoritmo para uma empresa que decide dar um reajuste a seus 584 funcionários de acordo com os seguintes critérios: a) 50% para aqueles que ganham menos do que três salários mínimos; b) 20% para aqueles que ganham entre três até dez salários mínimos; c) 15% para aqueles que ganham acima de dez até vinte salários mínimos; d) 10% para os demais funcionários. Leia o nome do funcionário, seu salário e o valor do salário mínimo. Calcule o seu novo salário reajustado. Escrever o nome do funcionário, o reajuste e seu novo salário. Calcule quanto à empresa vai aumentar sua folha de pagamento. 29. Faça um algoritmo que receba o número do mês e mostre o mês correspondente. Valide mês inválido. 30. Faça um algoritmo que receba o nome a idade, o sexo e salário fixo de um funcionário. Mostre o nome e o salário líquido: 31. Escrever um algoritmo que leia três valores inteiros distintos e os escreva em ordem crescente. 32. Dados três valores A, B e C, em que A e B são números reais e C é um caractere, pede-se para imprimir o resultado da operação de A por B se C for um símbolo de operador aritmético; caso contrário deve ser impressa uma mensagem de operador não definido. Tratar erro de divisão por zero. 33. Escrever um algoritmo que leia três valores inteiros e verifique se eles podem ser os lados de um triângulo. Se forem, informar qual o tipo de triângulo que eles formam: equilátero, isóscele ou escaleno. Propriedade: o comprimento de cada lado de um triângulo é menor do que a soma dos comprimentos dos outros dois lados. Triângulo Equilátero: aquele que tem os comprimentos dos três lados iguais; Triângulo Isóscele: aquele que tem os comprimentos de dois lados iguais. Portanto, todo triângulo equilátero é também isóscele; Triângulo Escaleno: aquele que tem os comprimentos de seus três lados diferentes. 34. A escola “APRENDER” faz o pagamento de seus professores por hora/aula. Faça um algoritmo que calcule e exiba o salário de um professor. Sabe-se que o valor da hora/aula segue a tabela abaixo: Professor Nível 1 R$12,00 por hora/aula Professor Nível 2 R$17,00 por hora/aula Professor Nível 3 R$25,00 por hora/aula 35. Elabore um algoritmo que, dada a idade de um nadador. Classifique-o em uma das seguintes categorias: Infantil A = 5 - 7 anos Infantil B = 8 - 10 anos juvenil A = 11- 13 anos juvenil B = 14 - 17 anos Sênior = 18 - 25 anos Apresentar mensagem “idade fora da faixa etária” quando for outro ano não contemplado. 36. Faça um algoritmo que calcule o valor da conta de luz de uma pessoa. Sabe-se que o cálculo da conta de luz segue a tabela abaixo: Tipo de Cliente Valor do KW/h 1 (Residência) 0,60 2 (Comércio) 0,48 3 (Indústria) 1,29 37. Faça um algoritmo que leia o nome, o sexo, a altura e a idade de uma pessoa. Calcule e mostre nome e o seu peso ideal de acordo com as seguintes características da pessoa: 38. Em um curso de Ciência da Computação a nota do estudante é calculada a partir de três notas atribuídas, respectivamente, a um trabalho de laboratório, a uma avaliação semestral e a um exame final. As notas variam, de 0 a 10 e a nota final é a média ponderada das três notas mencionadas. A tabela abaixo fornece os pesos: Laboratório Peso 2 Avaliação semestral Peso 3 Exame final Peso 5 39. Dado o nome de um estudante, com o respectivo número de matrícula e as três notas acima mencionadas, desenvolva um algoritmo para calcular a nota final e a classificação de cada estudante. A classificação é dada conforme a tabela abaixo: Nota Final Classificação [8,10] A [7,8] B [6,7] C [5,6] D [0,5] R Imprima o nome do estudante, com o seu número, nota final e classificação. 40- Uma Companhia de Seguros possui nove categorias de seguro baseadas na idade e ocupação do segurado. Somente pessoas com pelo menos 17 anos e não mais de 70 anos podem adquirir apólices de seguro. Quanto às classes de ocupações, foram definidos três grupos de risco. A tabela abaixo fornece as categorias em função da faixa etária e do grupo de risco. Dados nome, idade e grupo de risco, determinar a categoria do pretendente à aquisição de tal seguro. Imprimir o nome a idade e a categoria do pretendente, e , caso a idade não esteja na faixa necessária, imprimir uma mensagem. COMANDOS DE CONDIÇÂO Formato: if (condição) comando1 else comando2 O que faz o comando: O valor de condição é calculado como verdadeiro ou falso. Se a condição é verdadeira somente o comando1 é executado. Se a condição é falsa somente o comando2 é executado. Exemplos: Se a > b, então Maior é impresso; senão Menor é impresso. if (a > b) printf("Maior\n"); else printf("Menor\n"); Se a > b, então Maior é impresso e é feita a atribuição a = 2*b; se a < b, então Menor é impresso. if (a > b){ printf("Maior\n"); a = 2*b; } else printf("Menor\n"); Se a > b, então Maior é impresso; se a < b, então Menor é impresso e é feita a atribuição b = 3*a if (a > b) printf("Maior\n"); else { printf("Menor\n"); b = 3*a; }O comando condicional permite incluir no programa trechos de código que dependem de uma ou mais condi¸c˜oes para sua execução. O comando condicional tem duas formas básicas: if(condição) comando. if(condição) comando1 else comando 2. if(condição) comando if(condição) comando1 else comando2 A condição é uma expressão qualquer cujo valor é calculado ao se executar o comando condicional. Um valor diferente de zero para a condição indica verdadeiro Um valor igual a zero indica falso. Exemplos de uso do if if(a > 10) b=0; if(c − 10) d = 3; if(e ∗ 32 >= 789)a = b + 32 − k; if(n%2) printf(”O numero %d e’ impar! \n”,n); if(a == 10) b = 0; else b = 25; if(c − 10) d = 3; else c = 34/d; if(e ∗ 32 <= 789) a = b + 32 − k; else a = 0; if(n%2) printf(”O numero %d e’ impar! \ n”,n); else printf(”O numero %d e’ par! \n”,n); Operadores Relacionais < ........ ”menor que” <= ..... ”menor ou igual a” == ..... ”igual a” ! = ...... ”diferente de” >= ..... ”maior ou igual a” > ....... “maior que” Todos os operadores relacionais tem a mesma precedência, que é menor que a precedência dos operadores aritméticos. Mais exemplos if(a! = b) a = a − b; else b = b − 3; if(a! = b) a− = b; else b− = 3; if(1 <= a <= 3) printf(“\n o valor de a ´e um numero primo”); else b− = 3; if-else e blocos de comandos As vezes é necessário executar mais de uma operação quando uma condição é satisfeita. Nesse caso, o bloco dos comandos que devem ser executados deve ser limitado por ” {”e ”} ”. Exemplo: if(a < b) { t = a; a = b; b = t; } else i + +; Cuidado com o sinal de igual ”==” int saldo = 2000; if(saldo==0) printf(”Voce esta quebrado!\n”); else printf(”Seu saldo e’: %d”, saldo); int saldo = 2000; if(saldo” = ” 0) printf(”Voce esta quebrado!\n”); else printf(”Seu saldo e’: %d”,saldo); “O compilador não considera isso um erro! “ Cuidado. Aninhando Sentenças O exemplo a seguir responde se um dado número é positivo ou negativo e se é par ou ímpar. main() { int num; printf("\n Entre com um numero inteiro: "); // Obtem um numero do usuario scanf("%d",&num); //Seguinte imprime mensagem dizendo se o numero e’ positivo ou negativo e par ou impar if(num >= 0) { if(num%2==0) printf("\n O numero e par e positivo.\n"); else printf("\n O numero e impar e positivo.\n"); } else { if(num%2==0) printf("\n O numero e par e negativo.\n"); else printf("\n O numero e impar e negativo.\n"); } printf("\n \n \n "); system("pause"); } Regra da Associação Regra da associação: um if está associado com a última ocorrência do if sem else. Exemplo incorreto main() { int car; // Obtém o numero de carros num estacionamento printf("\n\n Entre com um numero de carros: "); scanf("%d",&car); /* Imprime uma mensagem dizendo se há mais de 10 carros ou se não há carros no estacionamento */ if(car != 0) if(car > 10) printf("\n\n Ha mais de 10 carros no estacionamento.\n"); else printf("\n\n Não ha carros no estacionamento.\n"); printf("\n \n \n \n"); system("pause"); } O que está acontecendo? main() { int car; // Obtém o numero de carros num estacionamento printf("\n\n Entre com um numero de carros: "); scanf("%d",&car); /* Imprime uma mensagem dizendo se há mais de 10 carros ou se não há carros no estacionamento */ if(car != 0) if(car > 10) printf("\n\n Ha mais de 10 carros no estacionamento.\n"); else printf("\n\n Não ha carros no estacionamento.\n"); printf("\n \n \n \n"); system("pause"); } Corrigindo o problema: use ” {”e ”} ”. main() { int car; // Obtém o numero de carros num estacionamento printf("\n\n Entre com um numero de carros: "); scanf("%d",&car); /* Imprime uma mensagem dizendo se há mais de 10 carros ou se não há carros no estacionamento */ if(car != 0) { if(car > 10) printf("\n\n Ha mais de 10 carros no estacionamento.\n"); } else printf("\n\n Não ha carros no estacionamento.\n"); printf("\n \n \n \n"); system("pause"); } if-else aninhados ou operadores lógicos Todos os programas até agora consideraram o comando if com condições simples: b!=0 contador < 5 Quando mais de uma condição precisa ser testada, precisamos usar sentenças if-else aninhadas. if(num>=0) if(num%2==0) printf(”Numero par positivo. \n”); Nós podemos usar operadores lógicos!!! Veja: if((num>=0) && (num%2==0)) printf(”Numero par positivo. \n”); Operadores Lógicos && E (todas as condições precisam ser verdadeiras) || OU (basta que uma das condições seja verdadeira) ! NÃO / NEGAÇAO Operadores Lógicos: operação de negação Cada expressão resulta num valor lógico: 0 falso 1 verdadeiro A operação de negação pode ser usada da seguinte forma: ! expressão E executa o seguinte papel: ! 0 é 1 ! 1 éb 0 Exemplo: if(num>0 && ! (num % 2) ) printf(”Numero par e positivo. \n”); Outro exemplo: Suponha que quero fazer um cálculo que só ´e válido para números pares positivos. Eu posso avisar ao usuário se ele não digitar um número que satisfaça as condições: printf(”digite um numero par positivo: ”); scanf(”%d”,&num); if(!(num>0 && num%2==0)) printf(”O numero digitado não satisfaz as condições. \n”); Operadores Lógicos: precedências O operador de negação tem precedência mais alta que os outros operadores lógicos. Os operadores lógicos && e || tem precedência menor que os operadores relacionais. Os operadores lógicos && e || tem precedência maior que a operação de atribuição. O operador && tem precedência maior que o operador ||. precedência menor = é executado depois! Como a precedência dos operadores lógicos ´e menor que a dos operadores relacionais, não ´e necessário usar parênteses em expressões como: x >= 3 && x <= 50 x== 1 || x == 2 || x == 3 Exemplo O programa a seguir verifica se os valores de lado1, lado2 e lado3 podem ser lados de um triangulo reto. Usaremos o fato de que os lados têm que ser valores positivos e que o quadrado de um dos lados é igual à soma dos quadrados dos outros dois lados. maind() { int lado1, lado2, lado3, q1, q2, q3; printf(”Entre com o tamanho dos lados do triangulo: ”); scanf(”%d %d %d”,&lado1, &lado2, &lado3); q1=lado1*lado1; q2=lado2*lado2; q3=lado3*lado3; if(lado1>0 && lado2>0 && lado3>0) { if(s1== s2+s3 —— s2 ==s1+s3 —— s3 == s1+s2) printf(”\n Triangulo reto! \n”); else printf(”\n Não e’ um triangulo reto!\n”); } else printf(”‘\n Não pode ser um triangulo: tem lados negativos!\n”); }
Compartilhar