Baixe o app para aproveitar ainda mais
Prévia do material em texto
9/10/2013 1 2013.2 Danilo Curvelo2013.2 LINGUAGEM C Tipos de Dados, Variáveis, Expressões e Instruções Primitivas DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 1 Danilo Curvelo de Souza curvelo@dca.ufrn.br Universidade Federal do Rio Grande do Norte Departamento de Engenharia da Computação e Automação DCA0800 – Algoritmos e Lógica de Programação 2013.2 Danilo Curvelo2013.2 • Estrutura de um programa em C • Tipos de Dados em C • Variáveis em C • Expressões em C • Saída de dados • Entrada de dados • Exemplos de algoritmos em C Conteúdo DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 2 2013.2 Danilo Curvelo2013.2 • Estrutura básica de um programa desenvolvido em linguagem C: • main() deve conter todas as instruções que queremos que sejam executadas • Todo código a executar é colocado entre { } Estrutura DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 3 main() { } Estrutura de um programa em C 2013.2 Danilo Curvelo2013.2 • Lembrando, a linguagem C é sensível ao caso (case-sensitive) Lembrete! DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 4 main() é DIFERENTE de Main(), mAin(), MAIN(), ... 2013.2 Danilo Curvelo2013.2 • Bibliotecas são adicionadas no início do arquivo, e possibilitam a utilização de novas funcionalidades agregadas por elas Bibliotecas DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 5 #include <stdio.h> #include <math.h> main() { } Bibliotecas em C 2013.2 Danilo Curvelo2013.2 • A linguagem C apresenta quatro tipos básicos de tipos de dados: • int : numérico inteiro • Representado por um número inteiro. Ex: 0, 10, -3 • float : numérico real • Representado por um número com ponto flutuante. Ex: 0.000001 • double : numérico real (precisão dupla) • Representado por um número com ponto flutuante com precisão dupla. Ex: 0.00000000000001 • char : caractere • Representado por um único caractere entre aspas simples. Ex: ‘a’, ‘3’, ‘_’, ‘*’ Tipos de Dados Básicos em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 6 9/10/2013 2 2013.2 Danilo Curvelo2013.2 • Como representar dados do tipo lógico (booleano) em C? • Utilizando o tipo int • Inteiro 0 representa FALSO • Inteiro diferente de 0 representa VERDADEIRO • Resumindo: • Falso: 0 • Verdadeiro: 1, -1, 2, -3, 123, … • A linguagem C vai te retornar 0 se for FALSO e 1 se for VERDADEIRO Tipo Lógico DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 7 2013.2 Danilo Curvelo2013.2 • Como representar dados de tipo literal com mais de um caractere? • Utilizando uma variação do tipo char • Conjunto de chars: char* • Um dado do tipo char* deve ser escrito delimitado por aspas duplas • Ex: “Tipo de dado literal em C” Tipo Literal DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 8 2013.2 Danilo Curvelo2013.2 • Numérico inteiro : int • Numérico real : float ou double • Lógico (booleano) : int • Literal : char* Analogia Pseudocódigo DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 9 2013.2 Danilo Curvelo2013.2 • Lembrando: Uma variável deve ser sempre definida antes de ser usada! • A definição de variáveis em C é feita utilizando a seguinte sintaxe: • tipo nome_variavel; • Importante: O ponto-vírgula ; indica o fim de uma instrução. Sempre deve ser utilizada em instruções de linha única! Variáveis em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 10 2013.2 Danilo Curvelo2013.2 • Deve-se respeitar as mesma regras aplicadas a atribuição de nomes de variáveis em pseudocódigo • Regras para atribuição do nome: 1. Deve começar necessariamente com uma letra ou o caracter _ (underline ou underscore) 2. Não pode ter o mesmo nome de uma palavra reservada a uma instrução da linguagem C 3. Um nome de variável não deve conter nenhum símbolo especial exceto a sublinha _ (underline ou underscore ) 4. Maiúsculas e minúsculas representam caracteres diferentes, logo variáveis distintas Variáveis em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 11 2013.2 Danilo Curvelo2013.2 Declaração de variáveis DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 12 main() { char caractere; } Tipo caractere main() { int idade; } Tipo inteiro main() { float peso; } Tipo real main() { double peso; } Tipo real (precisão dupla) main() { int brasileiro; } Tipo inteiro representando lógico main() { char* nome; } Tipo literal 9/10/2013 3 2013.2 Danilo Curvelo2013.2 Declaração de variáveis DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 13 main() { int idade, ano; float peso, altura, IMC; } Declarando variáveis main() { int idade; int ano; float peso; float altura; float IMC; } Declarando variáveis 2013.2 Danilo Curvelo2013.2 • DICA: O nome de uma variável deve ser descritivo daquilo que ela armazena • Utilize nomes significativos! Variáveis em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 14 main() { int x; } Nome não significativo main() { int idade; } Nome significativo main() { float preco_do_produto; } Nome composto significativo 2013.2 Danilo Curvelo2013.2 Exercício DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 15 Algoritmo “Exemplo” var N1, N2, N3, MEDIA : real Nome, Sobrenome: literal Brasileiro : logico Idade : inteiro salario : real Início Fim Declarando variáveis em pseudocódigo main() { } Declarando variáveis em C 2013.2 Danilo Curvelo2013.2 Exercício DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 16 Algoritmo “Exemplo” var N1, N2, N3, MEDIA : real Nome, Sobrenome: literal Brasileiro : logico Idade : inteiro salario : real Início Fim Declarando variáveis em pseudocódigo main() { float N1, N2, N3, MEDIA; char* Nome, Sobrenome; int brasileiro; int Idade; float salario; } Declarando variáveis em C 2013.2 Danilo Curvelo2013.2 • A atribuição de um valor só pode ser realizada para variáveis • Ao realizar uma atribuição o valor anterior presente na variável é perdido • Uma atribuição é realizada obedecendo a seguinte sintaxe: • variavel = expressão; • A variável a se alterar sempre no lado esquerdo da atribuição, e o valor a atribuir sempre do lado direito Instrução Primitiva de Atribuição DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 17 2013.2 Danilo Curvelo2013.2 • Instrução primitiva de atribuição Exemplo DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 18 main() { int idade; idade = 18; float peso; peso = 70.5; char caractere; caractere = '+'; char* texto; texto = "Tipo literal em C"; } Atribuição I 9/10/2013 4 2013.2 Danilo Curvelo2013.2 • Instrução primitiva de atribuição • Ao realizar uma atribuição o valor anterior presente na variável é perdido Exemplo DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 19 main() { int idade; idade = 18; idade = 19; } Atribuição I 2013.2 Danilo Curvelo2013.2 Exemplo DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 20 main() { float preco_do_arroz, preco_do_feijao; preco_do_arroz, preco_do_feijao = 2.50; } Atribuição III main() { float preco_do_arroz; float preco_do_feijao; preco_do_arroz = 2.50; preco_do_feijao = 2.50; } Atribuição I main() { float preco_do_arroz, preco_do_feijao; preco_do_arroz = 2.50; preco_do_feijao = 2.50; } Atribuição II 2013.2 Danilo Curvelo2013.2 • Podemos atribuir um valor a uma variável assim que ela é definida Instrução Primitiva de Atribuição DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 21 main() { int idade; idade = 18; } Atribuição I main() { int idade = 18; } Atribuição II main() { int idade, ano_de_nascimento; idade = 25; ano_de_nascimento = 1988; } Atribuição III main() { int idade = 25, ano_de_nascimento = 1988; } Atribuição IV 2013.2 Danilo Curvelo2013.2 Instrução Primitiva de Atribuição DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 22 main() { float PRECO_UNIT, PRECO_TOTAL; int QUANT; } Atribuição Algoritmo “Atribuicao” var PRECO_UNIT, PRECO_TOTAL : real QUANT : inteiro Início PRECO_UNIT ← 5.0 QUANT ← 10 PRECO_TOTAL ← PRECO_UNIT * QUANT Fim Atribuição 2013.2 Danilo Curvelo2013.2 Instrução Primitiva de Atribuição DCA0800 . ALGORITMOS E LÓGICADE PROGRAMAÇÃO 23 main() { float PRECO_UNIT, PRECO_TOTAL; int QUANT; PRECO_UNIT = 5.0; QUANT = 10; PRECO_TOTAL = PRECO_UNIT*QUANT; } Atribuição Algoritmo “Atribuicao” var PRECO_UNIT, PRECO_TOTAL : real QUANT : inteiro Início PRECO_UNIT ← 5.0 QUANT ← 10 PRECO_TOTAL ← PRECO_UNIT * QUANT Fim Atribuição 2013.2 Danilo Curvelo2013.2 • Operadores aritméticos Expressões DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 24 Operador Operação + Adição - Subtração * Multiplicação / Divisão % Resto da divisão 9/10/2013 5 2013.2 Danilo Curvelo2013.2 Expressões DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 25 main() { int a = 2; int b = 4; int c = a+b; int d = a-b; int e = a*b; int f = b/a; int g = b%a; } Expressões c terá valor 6 d terá valor -2 e terá valor 8 f terá valor 2 g terá valor 0 2013.2 Danilo Curvelo2013.2 • Como realizar operações de exponenciação? • Opção 1: • Através de multiplicações sucessivas • Opção 2: • Importando a biblioteca math.h e utilizando a função – pow(<base>, <expoente>) Expressões DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 26 #include <math.h> main() { int a = 2; int opcao1 = a*a*a; int opcao2 = pow(a,3); } Exponenciação de 2^3 2013.2 Danilo Curvelo2013.2 1. parênteses 2. pow 3. *, / e % 4. + e - Precedência DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 27 2013.2 Danilo Curvelo2013.2 • Operadores lógicos Expressões DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 28 Operador Tipo Operação || Binário Disjunção && Binário Conjunção ! Unário Negação Operador E: && Operador OU: || Operador NÃO: ! 2013.2 Danilo Curvelo2013.2 Expressões DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 29 main() { int f = 0; int v1 = 1; int v2 = -5; int a = f || v1; int b = v1 && v2; int c = !v2; } Expressões a terá valor 1 (verdadeiro) b terá valor 1 (verdadeiro) c terá valor 0 (falso) 2013.2 Danilo Curvelo2013.2 Operadores Relacionais DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 30 Operador Significado Resultado == Igualdade 1 (verdadeiro) ou 0 (falso) < Menor 1 (verdadeiro) ou 0 (falso) <= Menor ou igual 1 (verdadeiro) ou 0 (falso) > Maior 1 (verdadeiro) ou 0 (falso) >= Maior ou igual 1 (verdadeiro) ou 0 (falso) != Diferente 1 (verdadeiro) ou 0 (falso) 9/10/2013 6 2013.2 Danilo Curvelo2013.2 Operadores Relacionais DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 31 main() { int a = 10; int b = a < 10; int c = a <= 10; int d = a > 10; int e = a >= 10; int f = a == 10; int g = a != 10; } Expressões b terá valor 0 (falso) c terá valor 1 (verdadeiro) d terá valor 0 (falso) e terá valor 1 (verdadeiro) f terá valor 1 (verdadeiro) g terá valor 0 (falso) 2013.2 Danilo Curvelo2013.2 Importante! DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 32 Um erro muito frequente em programação em C é a troca do operador == pelo operador = . O operador == verifica se duas expressões são iguais. O operador = é utilizado para a atribuição de valores a variáveis. 2013.2 Danilo Curvelo2013.2 • A instrução responsável por imprimir na tela do usuário uma mensagem é o printf • Para utilizar este comando é obrigatório incluir a biblioteca stdio.h em seu código Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 33 printf(“texto aqui”); 2013.2 Danilo Curvelo2013.2 Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 34 #include <stdio.h> main() { printf("Algoritmos e Lógica de Programação"); } Usando saída de dados Algoritmos e Lógica de Programação Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Quebra de Linhas \n DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 35 #include <stdio.h> main() { printf("Algoritmos "); printf("e Lógica de "); printf("Programação"); } Usando saída de dados Algoritmos e Lógica de Programação Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Quebra de Linhas \n DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 36 #include <stdio.h> main() { printf("Algoritmos\n"); printf("e Lógica de\n"); printf("Programação\n"); } Usando saída de dados Algoritmos e Lógica de Programação Saída da execução do programa 9/10/2013 7 2013.2 Danilo Curvelo2013.2 Quebra de Linhas \n DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 37 #include <stdio.h> main() { printf("Algoritmos\ne Lógica de\nProgramação\n"); } Usando saída de dados Algoritmos e Lógica de Programação Saída da execução do programa 2013.2 Danilo Curvelo2013.2 • Como mostrar valores armazenados em uma determinada variável utilizando printf? • Onde <valor> deve ser substituído de acordo com o tipo de dado que se quer mostrar: Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 41 %c caractere simples (char) %d decimal (int) %f ponto flutuante (float ou double) %s cadeia de caracteres (char*) printf(“O valor da variável é <valor>!”, variavel); 2013.2 Danilo Curvelo2013.2 • Como mostrar valores armazenados em uma determinada variável utilizando printf? Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 42 #include <stdio.h> main() { int idade; idade = 18; printf("Maria tem %d anos.\n", idade); idade = 20; printf("Maria tem %d anos.\n", idade); } Saída de dados Maria tem 18 anos. Maria tem 20 anos. Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 43 #include <stdio.h> main() { float peso = 74.5; printf("Rafael pesa %f quilos.\n", peso); } Saída de dados Rafael pesa 74.500000 quilos. Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 44 #include <stdio.h> main() { float peso = 74.5; printf("Rafael pesa %.2f quilos.\n", peso); } Saída de dados Rafael pesa 74.50 quilos. Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 45 #include <stdio.h> main() { char letra = 'x'; printf("A letra armazenada na nossa variavel: %c \n", letra); } Saída de dados A letra armazenada na nossa variavel: x Saída da execução do programa 9/10/2013 8 2013.2 Danilo Curvelo2013.2 Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 46 #include <stdio.h> main() { char* codigo = "DCA0800"; printf("Codigo da disciplina: %s \n", codigo); } Saída de dados Codigo da disciplina: DCA0800 Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Saída de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 47 #include <stdio.h> main() { char* nome = "Maria"; int idade = 18; float peso = 50.5; printf("A paciente %s tem %d anos pesa %.1f quilos.\n", nome, idade, peso); nome = ”Raquel"; idade = 15; peso = 45.1; printf("A paciente %s tem %d anos pesa %.1f quilos.\n", nome, idade, peso); } Saída de dados A paciente Maria tem 18 anos pesa 50.5 quilos. A paciente Raquel tem 15 anos pesa 45.1 quilos. Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Exemplo DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 48 #include <stdio.h> main() { float PRECO_UNIT, PRECO_TOTAL; int QUANT; PRECO_UNIT = 5.0; QUANT = 10; PRECO_TOTAL = PRECO_UNIT*QUANT; } Saída de dados Algoritmo “Saída de Dados” var PRECO_UNIT, PRECO_TOTAL : real QUANT : inteiro Início PRECO_UNIT ← 5.0 QUANT ← 10 PRECO_TOTAL ← PRECO_UNIT * QUANT Escreva (“Preço Total: ”, PRECO_TOTAL) Fim Saída de Dados 2013.2 Danilo Curvelo2013.2 Exemplo DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 49 #include <stdio.h> main() { float PRECO_UNIT, PRECO_TOTAL; int QUANT; PRECO_UNIT = 5.0; QUANT = 10; PRECO_TOTAL = PRECO_UNIT*QUANT; printf(”Preco total: %f", PRECO_TOTAL); } Saída de dados Algoritmo “Saída de Dados” var PRECO_UNIT, PRECO_TOTAL : real QUANT : inteiro Início PRECO_UNIT ← 5.0 QUANT ← 10 PRECO_TOTAL ← PRECO_UNIT * QUANT Escreva (“Preço Total: ”, PRECO_TOTAL) Fim Saída de Dados 2013.2 Danilo Curvelo2013.2 • A instrução responsável por permitir a entrada de dados por partedo usuário é o scanf • Para utilizar este comando é obrigatório incluir a biblioteca stdio.h em seu código • Exceção: Variavel tipo char* -> scanf(“<valor>”, variavel); • Onde <valor> deve ser substituído de acordo com o tipo de dado que se quer mostrar: Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 50 %c caractere simples (char) %d decimal (int) %f ponto flutuante (float ou double) %s cadeia de caracteres (char*) scanf(“<valor>”, &variavel); 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 51 #include <stdio.h> main() { int idade; printf("Qual a sua idade?\n"); scanf("%d", &idade); printf("Você tem %d anos.\n", idade); } Entrada de Dados Qual a sua idade? Saída da execução do programa 9/10/2013 9 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 52 #include <stdio.h> main() { int idade; printf("Qual a sua idade?\n"); scanf("%d", &idade); printf("Você tem %d anos.\n", idade); } Entrada de Dados Qual a sua idade? 25 Você tem 25 anos. Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 53 #include <stdio.h> main() { float peso; printf("Qual o seu peso?\n"); scanf("%f", &peso); printf("Você tem %.2f quilos.\n", peso); } Entrada de Dados Qual a sua peso? Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 54 #include <stdio.h> main() { float peso; printf("Qual o seu peso?\n"); scanf("%f", &peso); printf("Você tem %.2f quilos.\n", peso); } Entrada de Dados Qual a sua peso? 74.5 Você tem 74.50 quilos. Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 55 #include <stdio.h> main() { int num1, num2, soma; printf("Entre com um numero: "); scanf("%d", &num1); printf("Entre com outro numero: "); scanf("%d", &num2); soma = num1+num2; printf("O resultado da soma desses dois numeros: %d \n", soma); } Entrada de Dados I – Entrada única Entre com um numero: Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 56 #include <stdio.h> main() { int num1, num2, soma; printf("Entre com um numero: "); scanf("%d", &num1); printf("Entre com outro numero: "); scanf("%d", &num2); soma = num1+num2; printf("O resultado da soma desses dois numeros: %d \n", soma); } Entrada de Dados I – Entrada única Entre com um numero: 2 Entre com outro numero: Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 57 #include <stdio.h> main() { int num1, num2, soma; printf("Entre com um numero: "); scanf("%d", &num1); printf("Entre com outro numero: "); scanf("%d", &num2); soma = num1+num2; printf("O resultado da soma desses dois numeros: %d \n", soma); } Entrada de Dados I – Entrada única Entre com um numero: 2 Entre com outro numero: 3 O resultado da soma desses dois numeros: 5 Saída da execução do programa 9/10/2013 10 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 58 #include <stdio.h> main() { int num1, num2; printf("Entre com dois numeros inteiros: "); scanf("%d%d", &num1, &num2); printf("O resultado da soma desses dois numeros: %d \n", num1+num2); } Entrada de Dados II – Múltiplas entradas Entre com dois numeros inteiros: Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 59 #include <stdio.h> main() { int num1, num2; printf("Entre com dois numeros inteiros: "); scanf("%d%d", &num1, &num2); printf("O resultado da soma desses dois numeros: %d \n", num1+num2); } Entrada de Dados II – Múltiplas entradas Entre com dois numeros inteiros: 2 3 O resultado da soma desses dois numeros: 5 Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Entrada de Dados em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 60 #include <stdio.h> main() { char* nome; printf("Qual o seu nome?\n"); scanf("%s", &nome); printf("Seu nome é %s.\n", nome); } Entrada de Dados Qual o seu nome? Danilo Seu nome é Danilo. Saída da execução do programa #include <stdio.h> main() { char* nome; printf("Qual o seu nome?\n"); scanf("%s", nome); printf("Seu nome é %s.\n", nome); } Entrada de Dados 2013.2 Danilo Curvelo2013.2 • É habitual querermos escrever notas em nosso código-fonte • Essas notas chama-se comentários • Os comentários não são intepretados pelo compilador (são ignorados) • Comentário de única linha: // • Comentário de múltiplas linhas: /* */ Comentários em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 61 2013.2 Danilo Curvelo2013.2 Comentários em C DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 62 #include <stdio.h> /* Exercicio de Algoritmos - DCA0800 Autor: Danilo Curvelo */ main() { char* nome; // variavel quer ira guardar o nome printf("Qual o seu nome?\n"); // Leitura de dados scanf("%s", nome); printf("Seu nome e %s.\n", nome); } Comentários #include <stdio.h> main() { char* nome; printf("Qual o seu nome?\n"); scanf("%s", nome); printf("Seu nome e %s.\n", nome); } Comentários 2013.2 Danilo Curvelo2013.2 Exemplos DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 63 Algoritmo “Entrada de Dados” var PRECO_UNIT, PRECO_TOTAL : real QUANT : inteiro Início Escreva (“Entre com o preço da unidade:”) Leia (PRECO_UNIT) Escreva (“Entre com a quantidade de unidades:”) Leia (QUANT) PRECO_TOTAL ← PRECO_UNIT * QUANT Escreva (“Preço Total: ”, PRECO_TOTAL) Fim Exemplo 9/10/2013 11 2013.2 Danilo Curvelo2013.2 Exemplos DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 64 #include <stdio.h> /* Algoritmo para calcular o preço total Autor: Danilo Curvelo */ main() { float PRECO_UNIT, PRECO_TOTAL; int QUANT; printf("Entre com o preço da unidade: "); scanf("%f", &PRECO_UNIT); printf("Entre com a quantidade de unidades: "); scanf("%d", &QUANT); PRECO_TOTAL = PRECO_UNIT * QUANT; printf("Preço Total: %.2f \n", PRECO_TOTAL); } Exemplo Entre com o preço da unidade: 3.50 Entre com a quantidade de unidades: 3 Preço Total: 10.50 Saída da execução do programa 2013.2 Danilo Curvelo2013.2 Exemplos DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 65 Algoritmo “Calcular IMC” var altura, massa, IMC: real Início Escreva (“Entre com sua altura e massa, respectivamente:”) Leia (altura, massa) IMC ← massa/altura^2 Escreva (“IMC: ”, IMC) Fim Exemplo 2013.2 Danilo Curvelo2013.2 Exemplos DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 66 #include <stdio.h> #include <math.h> /* Algoritmo para calcular o IMC de um individuo Autor: Danilo Curvelo */ main() { float altura, massa, IMC; printf("Entre com o sua altura e sua massa, respectivamente: "); scanf("%f%f", &altura, &massa); IMC = massa/pow(altura,2); printf("IMC: %.2f \n", IMC); } Exemplo Entre com o sua altura e sua massa, respectivamente: 1.80 74.0 IMC: 22.84 Saída da execução do programa 2013.2 Danilo Curvelo2013.2 1. A fórmula de juros compostos é a seguinte: 𝑉𝑓 = 1 + 𝑖 𝑁 . 𝑉𝑖. Onde Vj é o valor obtido após N períodos de aplicação com juros i. Vi é o valor inicial. Dados o valor inicial, o número de períodos (meses) e a taxa de juros, calcule o valor final desejado. 2. A fórmula da distância entre dois pontos é a seguinte: 𝐷 = 𝑥2 − 𝑥1 2 + 𝑦2 − 𝑦1 2. Dados dois pontos (x1, y1) e (x2, y2), encontrar a distância entre eles. 3. Dado a idade de uma pessoa em anos, meses e dias, encontrar a idade aproximada dessa pessoa em dias. Exercícios I DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 67 2013.2 Danilo Curvelo2013.2 1. Elabore um algoritmo que leia um número inteiro e imprima seu sucessor e seu antecessor. Por exemplo, suponha que o usuário digite o número 7, o algoritmo deveráimprimir na tela o seu antecessor (número 6) e o seu sucessor (número 8). 2. Elabore um algoritmo que leia uma temperatura em graus centígrados e apresente-a convertida em graus Fahrenheit. A fórmula de conversão é: 𝐹 = 9 5 ∗ 𝐶 + 32 Exercícios II DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 68 2013.2 Danilo Curvelo2013.2 1. Desenvolva um algoritmo que solicite ao usuário duas variáveis de valor inteiro (variáveis A e B) e que ao final do processamento a variável A contenha o valor da variável B e a variável B contenha o valor da variável A. 2. Calcule o preço médio do quilômetro rodado (R$/km) para uma dada distância percorrida (km), um certo volume de combustível gasto (litro) e o preço do combustível (R$). Exercícios III DCA0800 . ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 69
Compartilhar