Baixe o app para aproveitar ainda mais
Prévia do material em texto
Lógica de programação Definição e tipos de variáveis: INT dado // cria variável dado do tipo INTEIRO FLOAT dado // cria variável dado do tipo FLOAT CHAR dado // cria variável dado do tipo CARACTERE Comando de impressão na tela (SAÍDA) PRINTF (“TEXTO”); PRINTF (“% tipo”, variável); Comando de recepção de dados (entrada) SCANF (“% tipo”,% variável). Comando de espera: GETCH (); Todo comando ou instrução deve ser finalizado com (;). Toda função possui uma {e uma} caracterizando o conjunto de suas instruções. % d – INTEIRO % f – FLOAT % c – CHAR EXERCÍCIOS 1 - Elaborar um aplicativo/programa que solicite um dado inteiro, um float e um char para o usuário e na sequência apresentem os dados na tela. R:. #include<stdio.h> #include<conio.h> main() { int dado1; float dado2; char dado3; printf("Por favor, digite um dado do tipo inteiro: "); scanf("%d",&dado1); printf("\nPor favor, digite um dado do tipo float: "); scanf("%f",&dado2); printf("\nPor favor, digite um dado do tipo char: "); scanf("%s",&dado3); printf("\nO dado inteiro digitado foi: %d", dado1); printf("\nO dado float digitado foi: %f", dado2); printf("\nO dado char digitado foi: %c", dado3); getch(); } 2 – Elaborar um aplicativo para receber números FLOAT e apresente sua soma na tela. R:. #include<stdio.h> #include<conio.h> main() { float num1, num2, num3; float resultado; printf("Digite um numero: "); scanf("%f",&num1); printf("\nDigite o numero2: "); scanf("%f",&num2); printf("\nDigite o numero3: "); scanf("%f",&num3); getch(); resultado=(num1+num2+num3); printf("\nResultado: %.2f",resultado); getch(); } 3 – Elaborar um programa para receber dois números e apresentar o resultado das quatro operações básicas com eles na tela. R:. #include<stdio.h> #include<conio.h> main() { float num1, num2; float resultado; printf("Digite um numero: "); scanf("%f",&num1); printf("\nDigite outro numero: "); scanf("%f",&num2); getch(); resultado=(num1+num2); printf("\nResultado soma: %.2f",resultado); resultado=(num1*num2); printf("\nResultado multiplicacao: %.2f",resultado); resultado=(num1/num2); printf("\nResultado divisao: %.2f",resultado); resultado=(num1-num2); printf("\nResultado subtracao: %.2f",resultado); getch(); } Lógica de programação Lógica condicional SE: A função se baseia na análise sobre a veracidade de uma condição para realizar as instruções nelas descritas. Se a condição for verdadeira as instruções pertencentes à função são executadas, caso contrário o programa segue em frente. IF (condição) { Faça; } Complementar a lógica SE, temos a função SE NÃO. ELSE { Faça } EX:. Se o usuário digitar S imprimir: “sim”. Caso contrário, imprimir: “não” . if (dado==’s’) { printf(“sim”); { Else { Printf(“não”); } Algoritmo: Pedir o valor de a Recebe o valor de a Pedir o valor de b Recebe o valor de b Pedir o valor de c Recebe o valor de c Calcular o delta Δ=((b*b)-(4*a*c)) Se Δ > 0 =>Imprime resp. Se Δ ==0 => “ “ Se Δ < 0 => “ “ EXERCÍCIO 1 - #include<stdio.h> #include<conio.h> main() { float num1,num2,resultado; char operador; printf("Digite um valor: "); scanf("%f",&num1); printf("\nDigite a operacao desejada('+','-','*','/'): "); scanf("%s",&operador); printf("\nDigite um valor: "); scanf("%f",&num2); if (operador=='+') { resultado=num1+num2; printf("\nA soma foi: %.1f",resultado); } if (operador=='-') { resultado=num1-num2; printf("\nA subtracao foi: %.1f",resultado); } if (operador=='*') { resultado=num1*num2; printf("\nA multiplicacao foi: %.1f",resultado); } if (operador=='/') { resultado=num1/num2; printf("\nA divisao foi: %.1f",resultado); } getch(); } 2-Elaborar um programa para receber um valor e indicar se ele é ímpar ou par. % - resto da divisão R.: #include<stdio.h> #include<conio.h> main() { int valor; printf("Digite um numero: "); scanf("%d",&valor); if(valor%2==0) { printf("\nO numero eh par!"); } else { printf("\nO numero eh impar!"); } getch(); } 3-Elaborar um programa que recebe os valores de a,b e c da equação do segundo grau e indique quantas e de que tipo são estas raízes. Δ > Ο => Duas raízes reais e distintas Δ = Ο => “ “ “ e iguais Δ < Ο => Não possui raízes reais. #include<stdio.h> #include<conio.h> main() { float a,b,c,delta; printf("Digite o valor de a: "); scanf("%f",&a); printf("\nDigite o valor de b: "); scanf("%f",&b); printf("\nDigite o valor de c: "); scanf("%f",&c); delta=(b*b)-(4*a*c); if(delta>0) { printf("\nPossui duas raizes reais e distintas"); } if(delta==0) { printf("\nPossui duas raizes reais e iguais"); } if(delta<0) { printf("\nNao possui raizes reais"); } getch(); } Lógica de programação Estruturas de repetição: São funções estruturadas que visam colocar o programa em loop; Um loop é um laço de repetição bem definido que pode ser utilizado em diversas aplicações. Utilizaremos duas funções: I) While: II) For: O while é entendido como o comando enquanto e depende da análise de sua condição a fim de executar o laço. Ex.: Enquanto tiver louça suja Lave. While (x>=7) { Faça; } Laço infinito: While(true) { Faça; } Exercício: #include<stdio.h> #include<conio.h> main() { int i=0;//CONDICAO INICIAL while(i<133)//enquanto isso { printf("%d-Samara\n",i+1); i++;//INCREMENTO I=I+1 } getch(); } O FOR é uma estrutura bem definida na qual seu loop é definido na própria estrutura. FOR ( cond_inicial; cond_final; incremento) { Faça; } EX.: FOR(x==0; x>7; x++) { Faça; } Tanto o while como o FOR podem ser utilizados para os mesmos fins, cabendo ao programador utilizar a lógica que melhor julgar. Problema: 1-Elaborar um aplicativo para criar um número randômico para o usuário descobrir. O programa deve fornecer dicas se o numero e maior ou menor que o digitado,se for digitado ‘s’ o programa fecha,caso haja acerto imprime uma mensagem e fecha-se o programa. # include<stdlib.h> X=rand()%100; Break; Uma string é entendida como um conjunto de caracteres Problema: 2-Elaborar um programa para receberum numero, a idade e o sexo(‘f’ ou ’m’) de um candidato a uma vaga e imprimir o resultado na tela: Mulher ≤ 21 ou homem >30 EXERCÍCIO 1: #include<stdio.h> #include<conio.h> #include<stdlib.h> main() { int valor;//fixo int num;//digitado valor=rand() %100; char sair; printf("Quero ver se tu acerta mizeravi!!"); while(sair!='s') { printf("\nDigite um numero: "); scanf("%d",&num); if (num==valor) { printf("\nAcertou!Ah mizeravi!!"); getch(); break; } else { printf("\nErrou!hahaha!!"); if(num<valor) { printf("\nTente um numero maior"); } else { printf("\nTente um numero menor"); } } printf("\nDigite 's' para sair,ou outra qualquer para continuar: "); scanf("%s",&sair); } } EXERCÍCIO 2: #include<stdio.h> #include<conio.h> main() { char nome[30]; char sexo; int idade; printf("Digite o seu nome: "); gets(nome); printf("\nDigite sua idade: "); scanf("%d",&idade); printf("\nDigite o seu sexo ('f' ou 'm'): "); scanf("%s",&sexo); if((sexo=='f' && idade>=21) || (sexo=='m' && idade>30)) { printf("\n%s foi ACEITO(A)!!", nome); } else { printf("\nNao selecionado(a)!",&nome); } getch(); } REVISÃO: /*Revisão 1: Receber dois números inteiros e retornar a divisão do primeiro pelo segundo. Se o segundo for zero tem que imprimir na tela: DIVISÃO POR ZERO!*/ #include<stdio.h> //biblioteca do printf #include<conio.h> //função getch() main() { int n1,n2,resultado; printf("Digite o primeiro numero:\n "); scanf("%d",&n1); printf("Digite o segundo numero:\n "); scanf("%d",&n2); if(n2==0) { printf("DIVISAO POR ZERO"); } else { resultado = n1/n2; printf("A divisao resultou em: %d",resultado); } getch(); } /*Programa de revisão 2: Imprimir todos os múltiplos de 3 entre 100 e 200. */ #include<stdio.h> #include<conio.h> main() { int i; for(i=100;i<=200;i++) { if(i%3==0) printf("%d\n",i); } getch(); } /*Programa de revisão 3: Imprimir todos os múltiplos de 3*/ #include<stdio.h> #include<conio.h> main() { int i,n; printf("Digite um numero\n"); scanf("%d",&n); i=100; while(i<=200) { if(i%n==0) { printf("%d\n",i); } i++; } getch(); } Lógica de programação 1) Exercícios de fixação: Laço de repetição: Sair Char sair; While(sair!=’s’) { . . . Printf(“Digite ‘s’ para sair...”) Scanf(“%c”,&sair); Elabora um programa para receber um numero e apresentar sua tabuada na tela conforme mostrado. Num * 1 Num * 2 Num * 3 . . . Num * 10 #include<stdio.h> #include<conio.h> main() { char sair; int i; float num,resultado; while(sair!='s') { printf("Digite um numero:\n"); scanf("%f",&num); for(i=1;i<=10;i++) { resultado=num*i; printf("\n%.1f * %d = %.2f",num,i,resultado); } printf("\nDigite 's' para sair ou qualquer tecla para continuar:\n"); scanf("%s",&sair); } getch(); } O programa funciona em loop só se encerra ao digitar caractere ‘s’. 2) Logica condicional: seleção #include<stdio.h> #include<conio.h> main() { char nome[20]; char sexo; int dia,mes,ano; gets(nome); printf("Digite seu sexo:\n"); scanf("%c",&sexo); printf("\nDigite o dia em q vc nasceu:\n"); scanf("%d",&dia); printf("\nDigite o mes q vc nasceu:\n"); scanf("%d",&mes); printf("\nDigite o ano q vc nasceu:\n"); scanf("%d",&ano); if(sexo=='f') { printf("A Sra %s nasceu em %d/%d/%d",nome,dia,mes,ano); } else { printf("O Sr %s nasceu em %d/%d/%d",nome,dia,mes,ano); } getch(); } 3) Desenvolver um programa para selecionar um candidato para uma das vagas de acordo com suas informações. O programa deve receber: Senha (identificador): (int) Idade (int) Sexo (int-0 para F e 1 para M) Escolaridade(int- 0 –Fund;1-Medio;2-Téc;3-Sup) Experiência profissional(int-0-Sem;1-com) Vaga 01: Masculino com idade ≥ 23,sem experiência e com nível superior. Vaga 02: Feminino com idade ≥ 18 e ≤ 25;com nível técnico; Vaga 03: Qualquer sexo com idade ≤ 40 anos. Vaga 04: Nível superior com experiência profissional. Vaga 05: Nível fundamental ou médio com idade > 21 anos. Utilizar um laço de repetição. Imprimir os resultados da aceitação nas vagas. Caso o usuário seja escolhido em mais de uma vaga imprimir uma mensagem para procurar o responsável pela seleção. EXERCÍCIOS 1. Elaborar um aplicativo para receber um nome de até 10 caracteres e imprimi-lo na ordem direta e inversa. #include<stdio.h> #include<conio.h> #include<locale.h> #include<string.h> #include<math.h> #include<stdlib.h> main() { setlocale(LC_ALL, "Portuguese"); int i; char nome[10]; printf("Digite uma string:\n"); gets(nome); printf("\n%s",nome); for(i=9;i>=0;i--) { printf("\n%c",nome[i]); } getch(); } 2. Elaborar um aplicativo para receber quatro strings de tamanho definido e imprimir na ordem direta e reserva. #include<locale.h> #include<stdio.h> #include<conio.h> #include<string.h> #include<math.h> #include<stdlib.h> main() { setlocale(LC_ALL, "Portuguese"); char string[4][6]; int cont; int inv; for(cont=0;cont<4;cont++) { printf("\nDigite uma string:\n"); fflush(stdin); gets(string[cont]); } printf("\nORDEM DIRETA:\n"); for(cont=0;cont<4;cont++) { printf("\n%s\n",string[cont]); } printf("\nORDEM INVERSA:\n"); for(cont=0;cont<4;cont++) { for(inv=4;inv>=0;inv--) { printf("%c",string[cont][inv]);} printf("\n"); } getch(); } 3. Elaborar um programa/aplicativo para escolher no menu entre: 0-determinante da matriz 2x2; 1-determinante da matriz 3x3. Feita a escolha é apresentado o resultado na tela. #include<conio.h> #include<stdio.h> #include<locale.h> #include<string.h> #include<math.h> #include<stdlib.h> main() { setlocale(LC_ALL, "Portuguese"); system("color 5f"); char sair; int menu; float a11,a12,a13,a21,a22,a23,a31,a32,a33; float det; while (sair!='s') { printf("\nDigite '0' para matriz 2x2 ou '1' para 3x3:\n"); printf("\nA escolhida foi:\n"); scanf("%d",&menu); if(menu==0) { printf("\nDigite o valor de a11:\n"); scanf("%f",&a11); printf("\nDigite o valor de a12:\n"); scanf("%f",&a12); printf("\nDigite o valor de a21:\n"); scanf("%f",&a21); printf("\nDigite o valor de a22:\n"); scanf("%f",&a22); det=((a11*a22)-(a21*a22)); printf("\nDeterminante = %f",det); } if(menu==1) { printf("\nDigite o valor de a11:\n"); scanf("%f",&a11); printf("\nDigite o valor de a12:\n"); scanf("%f",&a12); printf("\nDigite o valor de a13:\n"); scanf("%f",&a13); printf("\nDigite o valor de a21:\n"); scanf("%f",&a21); printf("\nDigite o valor de a22:\n"); scanf("%f",&a22); printf("\nDigite o valor de a23:\n"); scanf("%f",&a23); printf("\nDigite o valor de a31:\n"); scanf("%f",&a31); printf("\nDigite o valor de a32:\n"); scanf("%f",&a32); printf("\nDigite o valor de a33:\n"); scanf("%f",&a33); det=((a31*a12*a23)+(a11*a22*a33)+(a21*a22*a13)- (a33*a12*a21)+(a13*a22*a31)+(a23*a32*a11)); printf("\nDeterminante = %f",det); } printf("\nDigite o 's' para sair ou outra para continuar:\n"); scanf("%s",&sair); } getch(); } 4. Elaborar uma calculadora com menu: 1. Soma 2. Subtração 3. Multiplicação 4. Divisão 5. Radianos 6. Potencia 7. Log 8. Seno 9. Cosseno 10. Tangente (NÃO COMPLETADA) #include<conio.h> #include<stdio.h>//para potencia -> pot:pow(a,(1/b)); #include<locale.h> #include<string.h> #include<math.h> #include<stdlib.h> #define PI 3.14159265 main() { setlocale(LC_ALL, "Portuguese"); system("color 5f"); char sair; int i; int x,y,menu; float res,atrib,num[10];//&num[i] printf("Escolha uma das operações:\n1-Soma\n2-Sub.\n3- Mult.\n4-Div.\n5-Rad\n6-Pot\n7-Log Nat.\n8-Log_10\n9-Sen\n10- Cos\n11-Tan\n"); scanf("%d",&menu); for(i=0;i<x;i++) getch(); } 5. Elabore um aplicativo com um menu a fim de escolher entre pelo menos quatro operações da 4° questão e apresente o resultado. O programa deve estar em loop. 6. Elabora um aplicativo para uma urna eletrônica. O processo conta com 03 candidatos: 13-Lula ; 45-FHC ; 56-Eneas. Colocar uma variável para colocar o resultado parcial e um para encerrar e mostrar o resultado final. PROBLEMA 1 #include<stdio.h> #include<conio.h> #include<locale.h> #include<stdlib.h> main() { setlocale(LC_ALL,"portuguese"); system("color 1B"); char sair; float num1,num2,num3; float maior,menor; while(sair!='s') { printf("\nDigite um valor: "); scanf("%f",&num1); printf("\nDigite um valor: "); scanf("%f",&num2); printf("\nDigite um valor: "); scanf("%f",&num3); if(num1>num2 && num1>num3) { maior = num1; if(num2>num3) { menor = num3; } else { menor = num2; } } if(num2>num1 && num2>num3) { maior = num2; if(num1>num3) { menor = num3; } else { menor = num1; } } if(num3>num1 && num3>num1) { maior = num3; if(num1>num2) { menor = num2; } else { menor = num1; } } printf("\nMaior = %f\nMenor = %f",maior,menor); printf("\nDigite 's' para sair ou outra tecla para continuar: "); scanf("%s",&sair); } } PROBLEMA 2 #include<stdio.h> #include<conio.h> #include<locale.h> #include<stdlib.h> #include<math.h> main() { setlocale(LC_ALL,"portuguese"); system("color 1B"); char sair; int menu; float a,b,c; float x1,x2; float delta; while(sair!='s') { printf("\n0 - Equaçao do Primeiro Grau: ax + b = 0\n1 - Equação do Segundo Grau: ax^2+bx+c = 0"); printf("\nA opçao escolhida foi: "); scanf("%d",&menu); if(menu==0) { printf("\nDigite o valor de a: "); scanf("%f",&a); printf("\nDigite o valor de b: "); scanf("%f",&b); x1=((-b)/a); printf("\nX=%f",x1); } if(menu==1) { printf("\nDigite o valor de a: "); scanf("%f",&a); printf("\nDigite o valor de b: "); scanf("%f",&b); printf("\nDigite o valor de c: "); scanf("%f",&c); delta=((pow(b,2))-4*a*c); if(delta>=0) { x1=(((-b)+sqrt(delta))/2*a); x2=(((-b)-sqrt(delta))/2*a); printf("\nX1 = %f\nX2 = %f",x1,x2); } else { printf("\nNao existem raizes reais"); } } printf("\nDigite 's' para sair ou outra tecla para continuar: "); scanf("%s",&sair); } } 3 #include<stdio.h> #include<conio.h> #include<locale.h> #include<stdlib.h> main() { setlocale(LC_ALL,"portuguese"); system("color 1B"); char sair; char string[14]; int i; printf("\nDigite uma string de 13 caracteres: "); fflush(stdin); gets(string); printf("\n"); for(i=12;i>=0;i--) { printf("%c",string[i]); } getch(); } 4 #include<stdio.h> #include<conio.h> #include<locale.h> #include<stdlib.h> #include<math.h> main() { setlocale(LC_ALL,"portuguese"); system("color 1B"); char sair; int menu; float x,y; double resultado; while(sair!='s') { printf("\n1 - Potencia\n2 - Radiciaçao\n3 - Logaritmo Natural\n4 - Logaritmo na Base 10\n5 - Media Aritmetica"); printf("\nA opçao selecionada foi: "); scanf("%d",&menu); if(menu==1) { printf("\nDigite o valor para a base: "); scanf("%f",&x); printf("\nDigite o valor para o expoente: "); scanf("%f",&y); resultado=pow(x,y); printf("\n%f^%f = %f",x,y,resultado); } if(menu==2) { printf("\nDigite o valor do radicando: "); scanf("%f",&x); printf("\nDigite o valor para a raiz: "); scanf("%f",&y); resultado=pow(x,(1/y)); printf("\n%f^%f = %f",x,y,resultado); } if(menu==3) { printf("\nDigite o valor: "); scanf("%f",&x); resultado=log(x); printf("\nResultado = %f",resultado); } if(menu==4) { printf("\nDigite o valor: "); scanf("%f",&x); resultado=log10(x); printf("\nResultado= %f",resultado); } if(menu==5) { printf("\nDigite um valor: "); scanf("%f",&x); printf("\nDigite um valor: "); scanf("%f",&y); resultado=(x+y)/2; printf("\nResultado = %f",resultado); } printf("\nDigite 's' para sair ou qualquer tecla para continuar: "); scanf("%s",&sair); } } 5 #include<stdio.h> #include<conio.h> #include<locale.h> #include<stdlib.h> main() { setlocale(LC_ALL,"portuguese"); system("color 1B"); char sair; char string[30]; int i; printf("\nDigite uma string de 30 caracteres: "); fflush(stdin); gets(string); printf("\n"); for(i=29;i>=0;i=i-2) { printf("%c",string[i]); } getch(); } RAD->GRAU anguloXpi/180
Compartilhar