Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITMOS CCT0001 Prof. Wellington Aguiar Curso : Análise e desenvolvimento de Sistemas Aula III Linguagem de Programação C/C++ Histórico Anos 70 - A Linguagem BCPL, desenvolvida por Martin Richards - Influenciou Ken Thompson a criar a linguagem B, - Dennis Ritchie no computador DEC PDP-11, usando o sistema operacional UNIX criou a linguagem C Anos 80 - Em 1980 enquanto trabalhava nos laboratórios Bell, Stroustrup acrescentou várias extensões à linguagem C e chamou inicialmente esta nova linguagem de “C com classes”. -- Em 1983 o nome mudou para C++ -- Muitas novidades foram adicionadas pós-Stroustrup para que a linguagem suportasse programação orientada a objetos A Linguagem C/C++ é case sensitive, isto é, diferencia letras minúsculas de maiusculas. Visão Geral da disciplina Linguagem C/C++ Compilador x Interpretador Programa Fonte em C/C++ #include <stdio.h> int main(){ printf (“Meu primeiro programa em C!!!\n”); } Compilador Transforma o programa fonte em código objeto ou executável Interpretador Interpreta o código fonte em tempo de execução Código objeto executável Programa Fonte em Basic 10 a= 10 20 b = 20 30 c = a + b 30 print c 40 end Linguagem C/C++ // Indica uma linha de comentário #include <stdio.h> Indica que deve ser incluida uma biblioteca auxiliar int main() Indica o início da função principal do programa { Indica o início das linhas de comando printf(“Meu primeiro programa em C!!!\n”) Indica o comando de saída ; Indica o final de uma linha de comando } Indica o fim das linhas de comando //Programa Fonte em C/C++ #include <stdio.h> int main() { printf (“Meu primeiro programa em C!!!\n”); } //Estrutura de um programa em C/C++ #include <nome da biblioteca> int main() { bloco de comandos; } Declaração de variáveis em C/C++ Os tipos de dados mais utilizados são : Int para números inteiros, exemplo : int X, Y; ) float para números reais, exemplo : float M, N; ) char para um caractere , exemplo : char SEXO;) - Não existe um tipo para armazenar strings (cadeia de caractere) Para isso deve-se utilizar um vetor com vários elementos do tipo char exemplo : char NOME [65]; Atribuição de valores : X = 4; Y = X + 2; M = 2.67; N = 3.1416; SEXO = ‘F’; ou strcpy (NOME, “João”); - Caractere é apresentado entre apóstrofos (‘) e cadeia de caracteres entre aspas duplas (“). Necessário inserir a biblioteca string.h Tipo de variáveis em C/C++ Nome Bytes* Descrição Intervalo* char 1 caractere ou número inteiro com tamanho de 8 bits. signed: -128 até 127 unsigned: 0 até 255 short 2 número inteiro com tamanho de 16 bits. signed: -32768 até 32767 unsigned: 0 até 65535 long 4 número inteiro com tamanho de 32 bits. signed:-2147483648 até 2147483647 unsigned: 0 até 4294967295 int * Número inteiro. Seu tamanho tradicionalmente depende no tamanho do tipo Word do sistema, assim no MSDOS possui 16 bits, enquanto em sistemas de 32 bits (como Windows 9x/2000/NT e sistemas que funcionam sob modo protegido em sistemas x86) possui 32 bits (4 bytes). Veja short, long float 4 número real. 3.4e + / - 38 (7 digitos) double 8 número real com dupla precisão. 1.7e + / - 308 (15 digitos) long double 10 número real comprido com dupla precisão. 1.2e + / - 4932 (19 digitos) bool 1 Valor boleano. Pode assumir um dos dois valores: true ou false NOTA: esse é um tipo que foi adicionado recentemente pelo padrão ANSI-C++. Nem todos os compiladores suportam-no. true ou false Comandos de ENTRADA em C/C++ cin >> X; - Um valor digitado pelo usuário será armazenado na variável X. até que encontre um espaço. O restante será desconsiderado. gets(NOME); ou scanf(&X); - Um ou vários caracteres digitados pelo usuário será armazenado na variável X. - Armazena todos os caracteres até que seja digitado ENTER. Comandos de SAÍDA em C/C++ cout << X; - Mostra o valor armazenado na variável X cout << “Valor de X = “ << X; - Mostra a mensagem e o valor armazenado na variável X printf(“%d”,Y); - Mostra o número inteiro armazenado na variável Y printf(“O valor de Y = %d”,Y); - Mostra a mensagem e o número inteiro armazenado na variável Y printf(“O valor de Y = %5.2f”,X); - Mostra a mensagem e o número real armazenado na variável X com - cinco inteiros e duas decimais. Para incluir comentários no programa // comentário de uma linha /* comentario linha 1 comentário linha 2 comentário linha 3 */ Operadores relacionais em C/C++ == Igual a != Diferente de > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a Sendo a=2, b=3 e c=6, (a == 5) Retornaria false. (a*b >= c) Retornaria true já que (2*3 >= 6) é verdadeiro. (b+4 > a*c) Retornaria false já que (3+4 > 2*6) é falso. ((b=2) == a) Retornaria true. (7 == 5) Retorna false. (5 > 4) Retorna true. (3 != 2) Retorna true. (6 >= 6) Retorna true. (3 <= 3) Retorna true. (5 < 5) Retorna false. Operador condicional (?) condição ? result1 : result2 7==5 ? 4 : 3 retorna 3 pois 7 não é igual a 5. 7==5+2 ? 4 : 3 retorna 4 pois 7 é igual a 5+2. 5>3 ? a : b retorna a, pois 5 é maior que 3. Pseudocódigo x Código em C/C++ Declaração de variáveis : var inteiro IDADE; real NOTA; caractere CURSO; logico ESCOLHA; int IDADE; float NOTA; char CURSO; bool ESCOLHA; Início de programa : Início main() { Comando de entrada de dados : Leia (IDADE) cin >> IDADE Comando de saída : Imprimir (IDADE) cout << IDADE Fim do programa : FIM } Resto da divisão: RESULTADO NUM1 mod NUM2; NUM1 e NUM2 devem ser do tipo INTEIRO RESULTADO = NUM1 % NUM2; Raiz quadrada : R = raiz(X) Potencia : P = A ^ B Raiz quadrada : R = sqrt(X); Potencia : P = pow(A,B); Para usar algumas funções matemáticas é necessário incluir a linha: # include <math.h> Exemplo de Programa em C/C++ #include <stdio.h> /* um programa com função que retorna valores*/ int produto (int a, int b) { return (a * b); } void main() { int resposta; resposta = produto (10, 11); //atribui o valor de retorno printf (“A resposta é %d\n”, resposta); } Comando Condição Composta Faça o algoritmo que leia as informações de: horas trabalhadas pelo empregado (HT), valor da hora trabalhada (VH). Calcular e apresentar o salário líquido do empregado, baseando-se nas tabelas abaixo: OBS.: Salário Líquido = Salário Bruto – INSS Salário Bruto = Horas trabalhadas x Valor da hora trabalhada; INSS = Alíquota × Salário Bruto. A alíquota depende do Salário Bruto e é apresentada na tabela abaixo: Salário Bruto Alíquota Até R$ 1.174,86 8,00% De R$ 1.174,87 até R$ 1.958,10 9,00% De R$ 1.958,11 até R$ 3.916,20 11,00% Para Salário Bruto acima de R$ 3.916,20, o valor de desconto é fixo e vale R$ 456,86 Tabela vigente desde 01/01/2011 Comando escolha se (COND = 1) então escreva (“Matemática”); senão se (COND = 2) então escreva (“Português”); senão se (COND = 3) então escreva (“Física”);senão se (COND = 4) então escreva (“Biologia”); senão escreva (“Química”); fim_se fim_se fim_se fim_se Comando escolha Comando Pseudocódigo Comando Linguagem C++ a) Comando escolha: escolha (COND) caso 1: escreva (“Matemática”); caso 2: escreva (“Português”); caso 3: escreva (“Física”); caso 4: escreva (“Biologia”); caso 5: escreva (“Química”); fim_escolha switch (COND) { case 1: cout << "Matemática "; break; case 2: cout << "Português "; break; case 3: cout << "Física "; break; case 4: cout << "Biologia "; break; case 5: cout << "Química "; break; default : cout<<“Opcao errada”; } Obs: O uso do comando break informa que ao encontrar a opção escolhida, o programa deve ignorar o resto das opções e passar a executar o próximo comando após o comando switch. Comando escolha – Exercício 1 Continuando o nosso programa principal, utilize o comando SWITCH para tratar a opção do usuário : Opção Descrição da opção 1 Calcular a área de um terreno 2 Calcular a média AV1, AV2 e AV3 3 Determinar se um número é PAR ou IMPAR 4 Calcular Salário Líquido (cálculo do INSS) 5 Compra de produtos de informática 6 Converter graus centígrados em fahrenheit 7 Ações de acordo com o semáforo, Comando escolha – Algoritmo 5 Faça um programa em C++ que, tendo como dados de entrada o código do produto comprado (CP) e a quantidade comprada do produto (QTD), apresente a descrição do produto comprado e quanto foi gasto nessa compra. Os preços seguem a tabela abaixo: Código do Produto (CP) Descrição do Produto Preço 1 Informática para Concursos 87,00 2 Java como Programar 219,00 3 Windows Vista 99,00 4 Excel Avançado 59,00 5 Adobe Photoshop 95,00 Comando escolha Comando Pseudocódigo Comando Linguagem C++ a) Operadores Lógicos: Operador e se (VALOR >= 0 e VALOR <= 100) então escreva (“Valor dentro da faixa”); senão escreva (“Valor fora da faixa”); fim_se && if (VALOR >= 0 && VALOR <= 100) { cout << “Valor dentro da faixa”; } else { cout << “Valor fora da faixa”; } Operador ou se (ESTADO = “SP” ou ESTADO = “RJ”) então escreva (“É paulista ou carioca”); senão escreva (“Não é paulista, nem carioca”); fim_se | | if (ESTADO = = ‘S’ || ESTADO = = ‘R’) { cout << “É paulista ou carioca”; } else { cout << “Não é paulista, nem carioca”; } Obs: ‘S’ corresponde a “SP” e ‘R’ corresponde a “RJ” Operador não se (não ESTADO = “SP”) então escreva (“Seja bem vindo!”); fim_se ! if (!(ESTADO = = ‘S’)) { cout << “Seja bem vindo!”; } Obs: ‘S’ corresponde a “SP” Comando escolha – Algoritmo 6 Faça um programa em C++ para converter a temperatura de graus centígrados em fahrenheit, usando a fórmula abaixo. Se a temperatura em centígrados for abaixo de 10 ou acima de 35 informar “PERIGO” se não informar “OK”. C = 5/9 * (F – 32) F = 32 + (9/5)*C Comando escolha – Algoritmo 7 Faça um programa em C++ que indique o que o motorista deve fazer de acordo com a cor do semáforo (CS) e com a distância do cruzamento (DC) fornecidos pelo usuário. As condições são: Semáforo Ação (V) Vermelho Parar (A) Amarelo o Se a distância do cruzamento for menor que 5 metros = Passar com cuidado o Se a distância do cruzamento for maior ou igual a 5 metros = Parar (D) Verde Passar Uso de Constantes Constantes são variáveis que recebem valores no início do programa e permanecem com este valor até o fim do programa. /*Código em C #define PI 3,1415926536 #define ARQUIVO “c:\arq.txt” #define SOMA 100+120; a = PI; printf(“%s\n”, ARQUIVO); x = SOMA; /*Código que será compilado, a = 3,1415926536; printf(“%s\n”, “c:\arq.txt”); x = 100+120;; /*Erro na linha acima!!!!!*/ Uso de funções No exemplo abaixo a função QUADRADO retorna o valor da quadrado do parâmetro passado para a função. #include <stdio.h> void quadrado(int x) { //o parâmetro foi declarado dentro dos parênteses printf (“%d”,x, “ elevado ao quadrado é %d\n”, x * x); } void main() { int num; num = 100; quadrado(num); //chama quadrado com o parâmetro num } Uso de funções No exemplo abaixo são passados dois parâmetros para a função MUL, que vai apresentar o resultado do produto dos parâmetros passados. Quando usa-se VOID, significa que não tem valor de retorno. #include <stdio.h> void mul (int a, int b) { printf (“%d”, a * b); } void main() { mul (10, 11); } Uso de funções No exemplo abaixo são passados dois parâmetros para a função MUL que retornará o valor do produto destes parâmetros através do comando RETURN do tipo int. #include <stdio.h> /* um programa com função que retorna valores*/ int mul (int a, int b) { return (a * b); } void main() { int resposta; resposta = mul (10, 11); //atribui o valor de retorno printf (“A resposta é %d\n”, resposta); } Exercício Calcule a área em Vermelho recebendo apenas a largura do quadrado. L Exercício Sabendo-se que a área do círculo calcula-se por : C = ¶ * R² Calcule a área em Vermelho recebendo apenas a largura do quadrado. L Tabela de códigos para o PRINTF Código Significado %c Exibe um caractere %d Exibe um inteiro em formato decimal %i Exibe um inteiro %e Exibe um número em notação científica (com e minúsculo) %E Exibe um número em notação científica (com E maiúsculo) %f Exibe um ponto flutuante em formato decimal %g Usa %e ou %f, o que for menor \b Retrocesso \f Alimentação de formulário \n Nova linha \r Retorno de carro \t Tabulação horizontal \” Aspas \’ Apóstrofo \0 Nulo \\ Barra invertida \v Tabulação vertical \a Sinal sonoro \N Constante octal \xN Constante hexadecimal
Compartilhar