├── aula3-turmae └── exercicio1.c ├── aula2 ├── exercicio1.c ├── exercicio2.cpp ├── exercicio3.cpp └── calc_versao1.c ├── aula1 ├── exercicio1.c ├── alo_mundo.c ├── exercicio3.c └── exercicio2.c ├── avaliando ├── conta_dias_sem_bissexto.c ├── media.c ├── ano_bissexto.c ├── maior_com_funcao.c ├── conta_dias_com_bissexto.c └── ordenando_5numeros.c ├── LICENSE ├── aula2-turmas-b_c_e └── exercicio1.c ├── README.md ├── aula2-turmas-a_d └── exercicio1.c └── calc_versao2.c /aula3-turmae/exercicio1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jesusmaringa/es20242sTA/HEAD/aula3-turmae/exercicio1.c -------------------------------------------------------------------------------- /aula2/exercicio1.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(){ 4 | int i = 1; 5 | int j = 10; 6 | int k = 1; 7 | printf("Valor i = %d\n",i==j); 8 | //i = i + 1; 9 | //i += 1; 10 | //i++; 11 | printf("Valor i = %d\n",i==k); 12 | 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /aula1/exercicio1.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void main(){ 4 | char nome[30]; 5 | int idade; 6 | 7 | printf("Digite seu nome: "); 8 | scanf("%s",&nome); 9 | printf("Digite sua idade: "); 10 | scanf("%d",&idade); 11 | 12 | printf("Alô %s! Falta(m) %d anos para chegar aos 100. \n\a",nome, (100 - idade)); 13 | } -------------------------------------------------------------------------------- /aula1/alo_mundo.c: -------------------------------------------------------------------------------- 1 | /* 2 | Alô Mundo, em C. 3 | Autor: Prof. Jesus 4 | Data: 08/02/2024 5 | */ 6 | 7 | //Bliblioteca padrão de entrada e saída. 8 | #include 9 | //Função principal 10 | int main(){//Início da função principal 11 | printf("Alô Mundo!"); //Chamada da função printf que faz parte da stdio 12 | return 0; 13 | }//Fim da Função principal -------------------------------------------------------------------------------- /aula2/exercicio2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | int divisivel(int valor, int divisor){ 3 | if(valor % divisor == 0) return 1; 4 | else return 0; 5 | } 6 | int main(){ 7 | int x,y; 8 | printf("Digite dois numeros para verificar se e divisor.\n"); 9 | scanf("%d%d",&x,&y); 10 | if(divisivel(x,y)){ 11 | printf("%d divisivel %d",x,y); 12 | }else{ 13 | printf("%d nao e divisivel %d",x,y); 14 | } 15 | 16 | return 0; 17 | } 18 | 19 | -------------------------------------------------------------------------------- /avaliando/conta_dias_sem_bissexto.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(){ 4 | int d,m,a; 5 | printf("Digite três números, dia, mês e ano, ex.: \"5 10 2024\": "); 6 | scanf("%d %n %a",&d, &m, &a); 7 | if(a < 1900){ 8 | printf("O ano deve ser maior que 1900."); 9 | return 0; 10 | } 11 | if(m < 0 || m > 12){ 12 | printf("O mes deve ser entre 1 e 12."); 13 | return 0; 14 | } 15 | if(d <= 1 || m >= 31){ 16 | printf("Dia deve ser entre 1 e 31."); 17 | return 0; 18 | } 19 | printf("Dias %d", (a-1900)*365+ (m-1)*30 +d); 20 | return 0; 21 | } -------------------------------------------------------------------------------- /aula2/exercicio3.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | int divisivel_por4(int num){ 3 | if(num % 4 == 0){ 4 | return 1; 5 | }else{ 6 | return 0; 7 | } 8 | } 9 | int main(){ 10 | int valor; 11 | char letra = 'u'; 12 | 13 | printf("Digite um valor com tres digitos: "); 14 | scanf("%d",&valor); 15 | if(valor >= 100 && valor <= 999){ 16 | 17 | if(divisivel_por4(valor)){ 18 | printf("%d divisivel por 4.",valor); 19 | }else{ 20 | printf("%d nao e divisivel por 4",valor); 21 | } 22 | 23 | 24 | }else{ 25 | printf("O valor deve ter 3 digitos."); 26 | } 27 | 28 | 29 | return 0; 30 | } 31 | 32 | -------------------------------------------------------------------------------- /avaliando/media.c: -------------------------------------------------------------------------------- 1 | /* 2 | Escrever um programa que leia 5 números e apresente a 3 | média entre eles. (Use apenas três variáveis). 4 | */ 5 | #include 6 | int main(){ 7 | double num, soma; 8 | printf("Digite o primeiro numero: "); 9 | scanf("%lf",&soma); 10 | printf("Digite o segundo numero: "); 11 | scanf("%lf",&num); 12 | soma += num; 13 | printf("Digite o terceiro numero: "); 14 | scanf("%lf",&num); 15 | soma += num; 16 | printf("Digite o quarto numero: "); 17 | scanf("%lf",&num); 18 | soma += num; 19 | printf("Digite o quinto numero: "); 20 | scanf("%lf",&num); 21 | soma += num; 22 | printf("A média é: %.2f ",soma/5); 23 | return 0; 24 | } 25 | -------------------------------------------------------------------------------- /avaliando/ano_bissexto.c: -------------------------------------------------------------------------------- 1 | /* 2 | Solicite o nome de uma pessoa e o ano de nascimento 3 | dela e apresente como resultado, o nome da pessoa e 4 | se o seu ano de nascimento foi bissexto ou não. 5 | */ 6 | 7 | #include 8 | int main(){ 9 | char nome[50]; 10 | int d, m, a; 11 | printf("Digite seu nome: "); 12 | // Não se usa & antes da variável. 13 | scanf("%s",nome); 14 | printf("Qual da data do seu nascimento d m a (dia mes ano)?\n"); 15 | scanf("%d %d %d",&d,&m,&a); 16 | if( (a % 400 == 0) || ( (a % 4 == 0) && (a % 100 != 0) ) ) 17 | printf("%s, você nasceu em %d/%d/%d, um ano bissexto.",nome,d,m,a); 18 | else 19 | printf("%c, você nasceu em %d/%d/%d, este ano nao foi.",nome,d,m,a); 20 | return 0; 21 | } -------------------------------------------------------------------------------- /avaliando/maior_com_funcao.c: -------------------------------------------------------------------------------- 1 | /* 2 | Escrever um programa que leia 5 números e apresente a 3 | média entre eles. (Use apenas três variáveis). 4 | */ 5 | #include 6 | double verifica_maior(double n1, double n2){ 7 | return n2 > n1 ? n2 : n1; 8 | } 9 | int main(){ 10 | double num, maior; 11 | printf("Digite o primeiro numero: "); 12 | scanf("%lf",&maior); 13 | printf("Digite o segundo numero: "); 14 | scanf("%lf",&num); 15 | maior = verifica_maior(num,maior); 16 | printf("Digite o terceiro numero: "); 17 | scanf("%lf",&num); 18 | maior = verifica_maior(num,maior); 19 | printf("Digite o quarto numero: "); 20 | scanf("%lf",&num); 21 | maior = verifica_maior(num,maior); 22 | printf("Digite o quinto numero: "); 23 | scanf("%lf",&num); 24 | printf("A média é: %.2f ",verifica_maior(num,maior)); 25 | return 0; 26 | } 27 | -------------------------------------------------------------------------------- /aula1/exercicio3.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(){ 4 | float n1,n2,n3,n4,resultado; 5 | char escolha; 6 | printf("Escolha a média:\nA - Aritimetica\nP - Ponderada\nH - Harmonica\n"); 7 | scanf("%c",&escolha); 8 | //printf("Escolha a média: %c",escolha); 9 | printf("Valor 01: "); 10 | scanf("%f",&n1); 11 | printf("Valor 02: "); 12 | scanf("%f",&n2); 13 | printf("Valor 03: "); 14 | scanf("%f",&n3); 15 | printf("Valor 04: "); 16 | scanf("%f",&n4); 17 | if(escolha == 'A'){ 18 | resultado = (n1 + n2 + n3 + n4)/4; 19 | } 20 | if(escolha == 'P'){ 21 | resultado = (2*n1 + 3*n2 + 5*n3 + 10*n4)/20; 22 | } 23 | if(escolha == 'H'){ 24 | resultado = 4/((1/n1) + (1/n2) + (1/n3) + (1/n4)); 25 | } 26 | 27 | printf("Média %c (%f - %f - %f - %f) = %f", escolha,n1,n2,n3,n4,resultado); 28 | 29 | 30 | return 0; 31 | } -------------------------------------------------------------------------------- /aula1/exercicio2.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | void main(){ 4 | int maior,menor,valor; 5 | printf("Primeiro número: "); 6 | scanf("%d",&valor); 7 | maior = valor; 8 | menor = valor; 9 | 10 | printf("Segundo número: "); 11 | scanf("%d",&valor); 12 | if(valor > maior){ 13 | maior = valor; 14 | } 15 | if(valor < menor){ 16 | menor = valor; 17 | } 18 | 19 | printf("Terceiro número: "); 20 | scanf("%d",&valor); 21 | if(valor > maior){ 22 | maior = valor; 23 | } 24 | if(valor < menor){ 25 | menor = valor; 26 | } 27 | 28 | printf("Quarto número: "); 29 | scanf("%d",&valor); 30 | if(valor > maior){ 31 | maior = valor; 32 | } 33 | if(valor < menor){ 34 | menor = valor; 35 | } 36 | 37 | printf("Quinto número: "); 38 | scanf("%d",&valor); 39 | if(valor > maior){ 40 | maior = valor; 41 | } 42 | if(valor < menor){ 43 | menor = valor; 44 | } 45 | printf("Maior = %d e Menor = %d",maior,menor); 46 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Jesus 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /aula2-turmas-b_c_e/exercicio1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | double soma(double n1, double n2); 4 | double sub(double n1, double n2); 5 | double div(double n1, double n2); 6 | double mult(double n1, double n2); 7 | double media(double n1, double n2); 8 | double porcentagem(double n1,double n2); 9 | int main(){ 10 | double valor1,valor2; // valor3 11 | char op; 12 | printf("Escolha a operacao:\n+ adicao\n- subtracao\n/ divisao\n* multiplicacao\nm media\np porcentagem\n"); 13 | 14 | scanf("%c",&op); 15 | 16 | printf("Digite o primeiro numero: "); 17 | scanf("%lf",&valor1); 18 | printf("Digite o segundo numero: "); 19 | scanf("%lf",&valor2); 20 | 21 | if(op == '+') printf("Soma = %.2f\n",soma(valor1,valor2)); 22 | else if(op == '-') printf("Sub = %.2f\n", sub(valor1,valor2)); 23 | else if(op == '/') printf("Div = %.2f\n", mult(valor1,valor2)); 24 | else if(op == '*') printf("Mult = %.2f\n", mult(valor1,valor2)); 25 | else if(op == 'm') printf("Media = %.2f\n", media(valor1,valor2)); 26 | else if(op == '%') printf("Media = %.2f\n", porcentagem(valor1,valor2)); 27 | else printf("Operacao %c invalida",op); 28 | return 0; 29 | } 30 | 31 | double porcentagem(double n1, double n2){ 32 | return div(mult(n1,n2),100); 33 | } 34 | double media(double n1, double n2){ 35 | return div( soma(n1,n1),2 ); 36 | } 37 | double mult(double n1, double n2){ 38 | return n1 * n2; 39 | } 40 | double div(double n1, double n2){ 41 | return n1 / n2; 42 | } 43 | double sub(double n1, double n2){ 44 | return n1 - n2; 45 | } 46 | double soma(double n1, double n2){ 47 | return n1 + n2; 48 | } 49 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Linguagem e Técnicas de Programção 2 | Uma parte dos códigos feitos em sala estão no diretório (pasta) exercícios acima. 3 | 4 | # RESULTADO DAS ATIVIDADES DE SALA E LABORATÓRIO (Sujeito à aprovação do Professor João). 5 | [RESUTADO](https://docs.google.com/spreadsheets/d/1ZZpurNqvpGJnwibhxbWae2Wo5DhDPclXTKostdZNY54/edit?pli=1&gid=1332890251#gid=1332890251) 6 | 7 | Obs.: Aqueles que perderam uma ou as duas atividades devem conversar com o professor João e verificar se algo pode ser feito. 8 | 9 | 10 | ## Se você usa Windows. 11 | [VSCode + c Programming.](https://www.youtube.com/watch?v=3pfRvy_gfqY) 12 | 13 | ## Compilando com gcc usando linha de comando. 14 | gcc -o 15 | Ex.: gcc -o alo alomundo.c 16 | 17 | A seguir, você tem acesso aos slides que forma usados em sala. 18 | 19 | ## Slides 20 | [Semana 01](https://docs.google.com/presentation/d/1Vr7u0_TocwgluPt3fIZ73sPQ33LqsXAC8ycHHmNqx5o/edit?usp=sharing) 21 | 22 | [Semana 02](https://docs.google.com/presentation/d/1ixK4OuMlBa2W1mtpbQXy25Cuy0B6OJF3KMdWgl7X9n8/edit?usp=sharing) 23 | 24 | [Semana 03](https://docs.google.com/presentation/d/1l8ml6UFX2KS6f7SiWdPZ2pr3aeuKDWxA6OufGL5sSkQ/edit?usp=sharing) 25 | 26 | [Semana 04](https://docs.google.com/presentation/d/1k_fTuWz90a-Ud8ROnHNHCSKcxp_qhYdacoE7EK1OBB8/edit?usp=sharing) 27 | 28 | [Fim da Jornada](https://docs.google.com/presentation/d/1DplLfkA2PisXNtSytfXNXowjY20kcDZdDvxb_dZXP7A/edit#slide=id.p) 29 | 30 | ## Livro 31 | [C Total](https://www.inf.ufpr.br/lesoliveira/download/c-completo-total.pdf) 32 | 33 | ## Notas de Aula 34 | [Notas de aula UFPR](https://www.inf.ufpr.br/cursos/ci067/Docs/NotasAula.pdf) 35 | 36 | ## Estudando no Youtube 37 | [5 horas e 48 min de aprendizagem](https://www.youtube.com/watch?v=ssJY5MDLjlo) 38 | 39 | [Linguagem C - Pietro Martins De Oliveira](https://www.youtube.com/watch?v=2w8GYzBjNj8&list=PLpaKFn4Q4GMOBAeqC1S5_Fna_Y5XaOQS2) 40 | 41 | -------------------------------------------------------------------------------- /avaliando/conta_dias_com_bissexto.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(){ 4 | int d,m,a; 5 | printf("Digite três números, dia, mês e ano, ex.: \"5 10 2024\": "); 6 | scanf("%d %d %d",&d, &m, &a); 7 | if(a < 1900){ 8 | printf("O ano deve ser maior que 1900."); 9 | return 0; 10 | } 11 | if(m < 0 || m > 12){ 12 | printf("O mes deve ser entre 1 e 12."); 13 | return 0; 14 | } 15 | if(d < 1 || m > 31){ 16 | printf("Dia deve ser entre 1 e 31."); 17 | return 0; 18 | } 19 | // 1902 é bissexto (1900 não é.) portanto 1898 foi bissexto. 20 | d += ((a-1898)/4)-1; // retirando o dia de hoje 21 | if( ((a % 400 == 0) || ( (a % 4 == 0) && (a % 100 != 0) )) && m < 2) d--; 22 | //Inspirado na resolução de alunos das turmas. 23 | switch (m) { 24 | case 1: 25 | printf("Dias %d\n", (a-1900)*365+d); 26 | break; 27 | case 2: 28 | printf("Dias %d\n", (a-1900)*365+31+d); 29 | break; 30 | case 3: 31 | printf("Dias %d\n", (a-1900)*365+31+28+d); 32 | break; 33 | case 4: 34 | printf("Dias %d\n", (a-1900)*365+31+28+31+d); 35 | break; 36 | case 5: 37 | printf("Dias %d\n", (a-1900)*365+31+28+31+30+d); 38 | break; 39 | case 6: 40 | printf("Dias %d\n", (a-1900)*365+31+28+31+30+31+d); 41 | break; 42 | case 7: 43 | printf("Dias %d\n", (a-1900)*365+31+28+31+30+31+30+d); 44 | break; 45 | case 8: 46 | printf("Dias %d\n", (a-1900)*365+31+28+31+30+31+30+31+d); 47 | break; 48 | case 9: 49 | printf("Dias %d\n", (a-1900)*365+31+28+31+30+31+30+31+31+d); 50 | break; 51 | case 10: 52 | printf("Dias %d\n", (a-1900)*365+31+28+31+30+31+30+31+31+30+d); 53 | break; 54 | case 11: 55 | printf("Dias %d\n", (a-1900)*365+31+28+31+30+31+30+31+31+30+31+d); 56 | break; 57 | case 12: 58 | printf("Dias %d\n", (a-1900)*365+31+28+31+30+31+30+31+31+30+31+30+d); 59 | break; 60 | } 61 | return 0; 62 | } -------------------------------------------------------------------------------- /avaliando/ordenando_5numeros.c: -------------------------------------------------------------------------------- 1 | /* 2 | Escrever um programa que solicite 5 números 3 | e apresente eles em ordem crescente. 4 | */ 5 | 6 | #include 7 | int main(){ 8 | int n1, n2, n3, n4, n5, temp; 9 | 10 | printf("Digite um número 1: "); 11 | scanf("%d",&n1); 12 | printf("%d ", n1); 13 | printf("Digite um número 2: "); 14 | scanf("%d",&n2); 15 | if(n1 > n2){ 16 | temp = n1; 17 | n1 = n2; 18 | n2 = temp; 19 | } 20 | printf("%d, %d ", n1, n2); 21 | printf("Digite um número 3: "); 22 | scanf("%d",&n3); 23 | if(n1 > n3){ 24 | temp = n3; 25 | n3 = n2; 26 | n2 = n1; 27 | n1 = temp; 28 | }else{ 29 | if(n2 > n3){ 30 | temp = n3; 31 | n3 = n2; 32 | n2 = temp; 33 | } 34 | } 35 | printf("%d, %d, %d ", n1, n2, n3); 36 | printf("Digite um número 4: "); 37 | scanf("%d",&n4); 38 | if(n1 > n4){ 39 | temp = n4; 40 | n4 = n3; 41 | n3 = n2; 42 | n2 = n1; 43 | n1 = temp; 44 | }else{ 45 | if(n2 > n4){ 46 | temp = n4; 47 | n4 = n3; 48 | n3 = n2; 49 | n2 = temp; 50 | }else{ 51 | if(n3 > n4){ 52 | temp = n4; 53 | n3 = n4; 54 | n4 = temp; 55 | } 56 | } 57 | } 58 | printf("%d, %d, %d, %d", n1, n2, n3, n4); 59 | printf("Digite um número 5: "); 60 | scanf("%d",&n5); 61 | if(n1 > n5){ 62 | temp = n5; 63 | n5 = n4; 64 | n4 = n3; 65 | n3 = n2; 66 | n2 = n1; 67 | n1 = temp; 68 | }else{ 69 | if(n2 > n5){ 70 | temp = n5; 71 | n5 = n4; 72 | n4 = n3; 73 | n3 = n2; 74 | n2 = temp; 75 | }else{ 76 | if(n3 > n5){ 77 | temp = n5; 78 | n5 = n4; 79 | n4 = n3; 80 | n3 = temp; 81 | }else{ 82 | if(n4 > n5){ 83 | temp = n5; 84 | n5 = n4; 85 | n4 = temp; 86 | } 87 | } 88 | } 89 | } 90 | printf("%d, %d, %d, %d, %d ", n1, n2, n3, n4, n5); 91 | return 0; 92 | } -------------------------------------------------------------------------------- /aula2-turmas-a_d/exercicio1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | // Para compilar no arduino gcc -o calc exercicio.c -lm 4 | double soma(double n1, double n2); 5 | double sub(double n1, double n2); 6 | double div(double n1, double n2); 7 | double mult(double n1, double n2); 8 | double media(double n1, double n2); 9 | double porcentagem(double n1, double n2); 10 | void eq2s(double a, double b, double c); 11 | 12 | int main(){ 13 | double valor1,valor2,valor3; 14 | char op; 15 | printf("Escolhe a operacao:\n"); 16 | printf("+ adicao\n"); 17 | printf("- subtracao\n"); 18 | printf("/ divisao\n"); 19 | printf("* multiplicao\n"); 20 | printf("m media\n"); 21 | printf("p porcentagem\n"); 22 | printf("s Equacao 2 grau\n"); 23 | 24 | scanf("%c",&op); 25 | 26 | if(op != 's'){ 27 | printf("Digite o primeiro numero: "); 28 | scanf("%lf",&valor1); 29 | printf("Digite o segundo numero: "); 30 | scanf("%lf",&valor2); 31 | }else{ 32 | printf("Digite o valor de a: "); 33 | scanf("%lf",&valor1); 34 | printf("Digite o valor de b: "); 35 | scanf("%lf",&valor2); 36 | printf("Digite o valor de c: "); 37 | scanf("%lf",&valor3); 38 | } 39 | 40 | if(op == '+') printf("Soma = %.2f",soma(valor1,valor2)); 41 | else if(op == '-') printf("Sub = %.2f\n",sub(valor1,valor2)); 42 | else if(op == '/') printf("Div = %.2f\n",div(valor1,valor2)); 43 | else if(op == '*') printf("Mult = %.2f\n",mult(valor1,valor2)); 44 | else if(op == 'm') printf("Media = %.2f\n",media(valor1,valor2)); 45 | else if(op == 'p') printf("Porcentagem = %.2f\n",porcentagem(valor1,valor2)); 46 | else if(op == 's') eq2s(valor1,valor2,valor3); 47 | else printf("Operacao %c invalida!",op); 48 | 49 | return 0; 50 | } 51 | void eq2s(double a, double b, double c){ 52 | 53 | double delta = sub( mult(b,b) , mult(mult(4,a),c) ); 54 | 55 | if(delta < 0){ 56 | printf("Não existe raiz real.\n"); 57 | }else if(delta == 0){ 58 | double x1 = div(-b,mult(2,a)); 59 | printf("x1 = x2 = %.2f\n",x1); 60 | }else{ 61 | double x1 = div(soma(-b,sqrt(delta)), mult(2,a)); 62 | double x2 = div(sub(-b,sqrt(delta)), mult(2,a)); 63 | printf("x1 = %.2f e x2 = %.2f\n",x1,x2); 64 | } 65 | } 66 | double porcentagem(double n1, double n2){ 67 | return div(mult(n1,n2),100); 68 | } 69 | double media(double n1, double n2){ 70 | return div(soma(n1,n2),2); 71 | } 72 | double mult(double n1, double n2){ 73 | return n1 * n2; 74 | } 75 | double div(double n1, double n2){ 76 | return n1 / n2; 77 | } 78 | double sub(double n1, double n2){ 79 | return n1 - n2; 80 | } 81 | double soma(double n1, double n2){ 82 | return n1 + n2; 83 | } 84 | -------------------------------------------------------------------------------- /calc_versao2.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include // calculos matemáticos 3 | #include // 4 | // Para compilar no arduino gcc -o calc exercicio.c -lm 5 | int menu_calculara(); 6 | double soma(double n1, double n2); 7 | double sub(double n1, double n2); 8 | double div(double n1, double n2); 9 | double mult(double n1, double n2); 10 | double media(double n1, double n2); 11 | double porcentagem(double n1, double n2); 12 | void eq2s(double a, double b, double c); 13 | 14 | int main(){ 15 | setlocale(LC_ALL,NULL);// Localização corrente (SO); 16 | return menu_calculara(); 17 | } 18 | int resolve(char op, double v1, double v2){ 19 | if(op == '+') printf("%.2lf + %.2lf = %.2lf",v1,v2,soma(v1,v2)); 20 | else if(op == '-') printf("%.2lf - %.2lf = %.2lf",v1,v2,sub(v1,v2)); 21 | else if(op == '/') printf("%.2lf / %.2lf = %.2lf",v1,v2,div(v1,v2)); 22 | else if(op == '*') printf("%.2lf * %.2lf = %.2lf",v1,v2,mult(v1,v2)); 23 | else if(op == 'm') printf("(%.2lf + %.2lf)/2 = %.2lf",v1,v2,media(v1,v2)); 24 | else if(op == 'p') printf("(%.2lf * %.2lf)/100 = %.2lf",v1,v2,porcentagem(v1,v2)); 25 | } 26 | int menu_calculara(){ 27 | double valor1,valor2,valor3; 28 | char op; 29 | do{ 30 | do{ 31 | printf("Escolhe a operação:\n"); 32 | printf("+ adição\n"); 33 | printf("- subtração\n"); 34 | printf("/ divisao\n"); 35 | printf("* multiplição\n"); 36 | printf("m média\n"); 37 | printf("p porcentagem\n"); 38 | printf("s Equação 2 grau\n"); 39 | scanf(" %c",&op); 40 | }while (op != '+' && op != '-' && op != '/' && op != '*' && op != 'm' && op != 'p' && op != 's'); 41 | 42 | if(op != 's'){ 43 | printf("Digite o primeiro número: "); 44 | scanf("%lf",&valor1); 45 | printf("Digite o segundo número: "); 46 | scanf("%lf",&valor2); 47 | resolve(op,valor1,valor2); 48 | }else{ 49 | printf("Digite o valor de a: "); 50 | scanf("%lf",&valor1); 51 | printf("Digite o valor de b: "); 52 | scanf("%lf",&valor2); 53 | printf("Digite o valor de c: "); 54 | scanf("%lf",&valor3); 55 | eq2s(valor1,valor2,valor3); 56 | } 57 | printf("\n\nDigite: q (sair) ou c (continuar): "); 58 | scanf(" %c",&op); 59 | 60 | }while(op != 'q'); 61 | return 0; 62 | } 63 | void eq2s(double a, double b, double c){ 64 | double delta = sub( mult(b,b) , mult(mult(4,a),c) ); 65 | if(delta < 0){ 66 | printf("Não existe raiz real.\n"); 67 | }else if(delta == 0){ 68 | double x1 = div(-b,mult(2,a)); 69 | printf("x1 = x2 = %.2f\n",x1); 70 | }else{ 71 | double x1 = div(soma(-b,sqrt(delta)), mult(2,a)); 72 | double x2 = div(sub(-b,sqrt(delta)), mult(2,a)); 73 | printf("x1 = %.2f e x2 = %.2f\n",x1,x2); 74 | } 75 | } 76 | double porcentagem(double n1, double n2){ 77 | return div(mult(n1,n2),100); 78 | } 79 | double media(double n1, double n2){ 80 | return div(soma(n1,n2),2); 81 | } 82 | double mult(double n1, double n2){ 83 | return n1 * n2; 84 | } 85 | double div(double n1, double n2){ 86 | return n1 / n2; 87 | } 88 | double sub(double n1, double n2){ 89 | return n1 - n2; 90 | } 91 | double soma(double n1, double n2){ 92 | return n1 + n2; 93 | } 94 | -------------------------------------------------------------------------------- /aula2/calc_versao1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include // calculos matemáticos 3 | #include // 4 | // Para compilar no arduino gcc -o calc exercicio.c -lm 5 | double soma(double n1, double n2); 6 | double sub(double n1, double n2); 7 | double div(double n1, double n2); 8 | double mult(double n1, double n2); 9 | double media(double n1, double n2); 10 | double porcentagem(double n1, double n2); 11 | void eq2s(double a, double b, double c); 12 | 13 | int main(){ 14 | double valor1,valor2,valor3; 15 | char op; 16 | //setlocale(LC_ALL, "en_US.UTF-8"); 17 | setlocale(LC_ALL,NULL);// Localização corrente (SO); 18 | do{ 19 | do{ 20 | printf("Escolhe a operação:\n"); 21 | printf("+ adição\n"); 22 | printf("- subtração\n"); 23 | printf("/ divisao\n"); 24 | printf("* multiplição\n"); 25 | printf("m média\n"); 26 | printf("p porcentagem\n"); 27 | printf("s Equação 2 grau\n"); 28 | scanf(" %c",&op); 29 | }while (op != '+' && op != '-' && op != '/' && op != '*' && op != 'm' && op != 'p' && op != 's'); 30 | 31 | if(op != 's'){ 32 | printf("Digite o primeiro número: "); 33 | scanf("%lf",&valor1); 34 | printf("Digite o segundo número: "); 35 | scanf("%lf",&valor2); 36 | if(op == '+') printf("%.2lf + %.2lf = %.2lf",valor1,valor2,soma(valor1,valor2)); 37 | else if(op == '-') printf("%.2lf - %.2lf = %.2lf",valor1,valor2,sub(valor1,valor2)); 38 | else if(op == '/') printf("%.2lf / %.2lf = %.2lf",valor1,valor2,div(valor1,valor2)); 39 | else if(op == '*') printf("%.2lf * %.2lf = %.2lf",valor1,valor2,mult(valor1,valor2)); 40 | else if(op == 'm') printf("(%.2lf + %.2lf)/2 = %.2lf",valor1,valor2,media(valor1,valor2)); 41 | else if(op == 'p') printf("(%.2lf * %.2lf)/100 = %.2lf",valor1,valor2,porcentagem(valor1,valor2)); 42 | else printf("operação %c invalida!",op); 43 | 44 | }else{ 45 | printf("Digite o valor de a: "); 46 | scanf("%lf",&valor1); 47 | printf("Digite o valor de b: "); 48 | scanf("%lf",&valor2); 49 | printf("Digite o valor de c: "); 50 | scanf("%lf",&valor3); 51 | eq2s(valor1,valor2,valor3); 52 | } 53 | 54 | printf("\n\nDigite: q (sair) ou c (continuar): "); 55 | scanf(" %c",&op); 56 | }while(op != 'q'); 57 | return 0; 58 | } 59 | void eq2s(double a, double b, double c){ 60 | 61 | double delta = sub( mult(b,b) , mult(mult(4,a),c) ); 62 | 63 | if(delta < 0){ 64 | printf("Não existe raiz real.\n"); 65 | }else if(delta == 0){ 66 | double x1 = div(-b,mult(2,a)); 67 | printf("x1 = x2 = %.2f\n",x1); 68 | }else{ 69 | double x1 = div(soma(-b,sqrt(delta)), mult(2,a)); 70 | double x2 = div(sub(-b,sqrt(delta)), mult(2,a)); 71 | printf("x1 = %.2f e x2 = %.2f\n",x1,x2); 72 | } 73 | } 74 | double porcentagem(double n1, double n2){ 75 | return div(mult(n1,n2),100); 76 | } 77 | double media(double n1, double n2){ 78 | return div(soma(n1,n2),2); 79 | } 80 | double mult(double n1, double n2){ 81 | return n1 * n2; 82 | } 83 | double div(double n1, double n2){ 84 | return n1 / n2; 85 | } 86 | double sub(double n1, double n2){ 87 | return n1 - n2; 88 | } 89 | double soma(double n1, double n2){ 90 | return n1 + n2; 91 | } 92 | --------------------------------------------------------------------------------