Baixe o app para aproveitar ainda mais
Prévia do material em texto
Métodos Computacionais Segunda Aula Professor Adilson da Silva ▪Estruturas de Decisão em C ▪ Introdução à linguagem de Programação C Objetivos ▪Estruturas de Repetição em C ▪Funções em C • Conhecer como surgiu e compreender o motivo do sucesso como linguagem de programação da linguagem C; • Aprender conhecimentos básicos sobre a linguagem C; • Conhecer as diferentes estruturas e ser capaz de escolher a mais adequada para cada problema; • Estudar as funções em C aprendendo como declarar e usar uma função; • Ser capaz de criar programas básicos em C que sejam úteis para resolver problemas aplicados à engenharia. Objetivos • A Linguagem C foi inventada e foi implementada no inicio dos anos 70 por Dennis Ritchie em um DEC PDP-11, usando o Sistema Operacional UNIX. • A linguagem C é o resultado do processo de desenvolvimento iniciado com outra linguagem, chamada BCPL, desenvolvida por Martin Richards. Esta linguagem influenciou a linguagem inventada por Ken Thompson, chamada linguagem B. • Sendo assim a linguagem C é a evolução da linguagem B. • A linguagem C se tornou uma das linguagens de programação mais utilizada, por ser flexível e ainda poderosa, sendo que ela é a responsável pela criação de alguns software famosos e a base de outros como jogos. Conceitos Básicos da Linguagem C • A linguagem C encontra seus limites quando o tamanho de um projeto ultrapassa certo ponto de 25.000 a 100.000 linhas de código. Para a solução desse problema em 1980 um estudioso chamado Bjarne Stroustrup acrescentando varias intenções na linguagem C deu origem à nova linguagem que se chamava inicialmente “C com classes”, e por volta dos anos 1983 o nome foi mudado para linguagem C++. Conceitos Básicos da Linguagem C • Mais a evolução do C++ não parou com o Bjarne Stroustrup, muitas foram as implementações, até tornarem a linguagem C++ uma linguagem que suporta Programação Orientada a Objetos. As inspirações relacionadas acima deve através de outra linguagem de programação chamada Simula67. • Atualmente a linguagem C / C++ é utilizada nas faculdades de Sistema de Informação e Ciência da Programação em aulas de Lógica de Programação e Estrutura de dados. Conceitos Básicos da Linguagem C IDE para Linguagem C++ • Utilizaremos a linguagem C++ para criar os programas; • Download do DEV C++ • https://sourceforge.net/project s/orwelldevcpp/ • Learn C++ Programing • Móvel C [C/C++ Compiler] https://sourceforge.net/projects/orwelldevcpp/ •Linguagem de Médio Nível •Simples e amigável •Excelente portabilidade •Sintaxe Fácil •Uso de funções e procedimentos Linguagens C++ Estrutura da linguagem C++ Tipos de dados da Linguagens C++ Na linguagem de programação C, os dados podem assumir cinco tipos básicos: char, int ,float, double e void Tipos de Dados na linguagem C BITS INTERVALO INÍCIO FIM Char 8 -128 127 unsigned char 8 0 255 signed char 8 -128 127 int 16 -32768 32767 unsigned int 16 0 65535 signed int 16 -32768 32767 short int 16 -32768 32767 unsigned short int 16 0 65535 signed short int 16 -32768 32767 BITS INTERVALO INÍCIO FIM long int 32 -2147463648 2147463647 unsigned long int 32 0 4294967295 signed long int 32 -2147463648 2147463647 float 32 -3.4E-38 3.4E+38 double 64 1.7E-308 1.7E+308 long double 80 -3.4E-4932 3.4E+4932 Tipos de Dados na linguagem C Operadores na Linguagem C • Aritméticos • Relacionais • Lógicos Operadores Aritméticos Adição + int a = 2 + 2; // a = 4 Subtração - int b = 5 -2; // b = 3 Multiplicação * int c = 2 * 5; // c = 10 Divisão / int d = 6 / 3; // d = 2 Resto % int e = 5 % 2; // e = 1 Operadores Relacionais Operadores Descrição Exemplo < Maior que Int a = 3, b = 2; (a > b) true (b > a) false > Menor que Int a = 3, b = 2; (a < b) false (b < a) true >= Maior ou igual Int a = 3, b = 2, c = 2; (a >= b) true (a >= c) true <= Menor ou igual Int a = 3, b = 2, c = 2; (a <= b) false (a <= c) true == Igualdade Int a = 3, b = 2, c = 2; (a == b) false (a == c) true != Diferença Int a = 3, b = 2, c = 2; (a != b) true (a != c) false Operadores Lógicos Operadores Descrição Exemplo && E( and) Int a = 3, b = 2, c = 2; (a == b) && (b == c) // false || Ou (or) Int a = 3, b = 2, c = 2; (a == b) ||(b == c) // true ! Negação (not) bool a = true, b = false; !a // false !b // true Declarando Variáveis • Evite começar com letra maiúscula e nunca use um numero para começar uma variável. • Não utilize caracteres especiais, como : , “ , (, ). • Você não pode usar palavras reservadas como variável. • Não coloque sinais de pontuação na sua variável. Criando variáveis #include <stdio.h> int main( void) { double primeiranota, segundanota, media; primeiranota=0; segundanota=0; media=0; return 0; } Entrada e Saída de Dados #include <stdio.h> int main( void) { int idade; int anoAtual; int anoNascimento; printf("Digite sua idade: "); scanf("%id",&idade); printf("Digite o ano atual: "); scanf("%id",&anoAtual); anoNascimento=anoAtual-idade; printf("Oi, você nasceu em %d\n",anoNascimento); return 0; } Estrutura básica de um programa em C /* programa que calcula o perímetro e a área de uma circunferência de raio */ #include <stdio.h> /* Inclui diretivas de entradas-saída*/ #include <math.h> /* inclui diretivas das funções matemáticas*/ int main( void) { int R; float Perm, Area, PI; PI = 3.14159; printf("Entre com o valor do raio:"); scanf("%d", &R); Perm = 2 * PI * R; Area = PI * pow(R,2); printf("O perímetro da circunferência de raio %d é %.2f \n",R ,Perm); printf("e a área e %.2f",Area); return 0; } Inclusão de biblioteca Inclusão de variáveis Impressão de mensagem Digitação de variável Entrada e Saída de Dados Formatação Sequencias de escape #include <stdio.h> int main ( void) { int a; printf ("Digite um numero: "); scanf ("%d", &a); printf ("\nO numero digitado foi %d\n", a); return (0); } Exemplo de programa Saída de dados Entrada de dados Exemplo de programa /*programa exemplo do uso da função printf Imprime com 6 casas dec.*/ #include<stdio.h> int main( void) { int N=2; char Letra ='a'; float X = 2.5f; double Z=3.5 e-10; printf("O primeiro valor impresso é uma constante decimal %d",15); printf("O valor da primeira variável declarada e inicializada é %d",N); printf("O valor da segunda variável declarada e inicializada é %c",Letra); printf("O valor da primeira variável de ponto flutuante (prec. Simples) é %f",X); printf("O valor da segunda variável de ponto flutuante (prec. Dupla) é %f",Z); printf("O valor da segunda variável de ponto flutuante (prec. Dupla) é %.11f",Z); printf("O valor da expressão que soma 4 ao valor de N é %d", N+4); printf("As variáveis utilizadas (declaradas e inicializadas) foram N=%d, \Letra=%c, X=%f, Z=%.11f", N,Letra,X,Z); return 0; } #include <stdio.h> /* inclui definições básicas p/ I/O */ #define CONST_EX 50 /* nomeação da constante 50 */ int main( void ) { int vi; /* declaração das variáveis */ char vc; float vx; double vy; vi = CONST_EX; /* atribuição de valores */ vc = 'm'; vx = -10.3f; vy = 0.023; printf("Exemplo de constante CONST_EX = %d \n",CONST_EX); printf("Exemplo de variável int vi = %i \n", vi); printf("Exemplo de variável char vc = %c \n", vc); printf("Exemplo de variável float vx = %f \n", vx); printf("Exemplo de variável double vy = %f \n", vy); /* ou %lf */ vi = 10; printf("variável int (decimal) vi = %d \n",vi); rintf("variável int (hexadecimal) vi = %x \n",vi); printf("variável int (octal) vi = %o \n",vi); } Exemplo de programa Exemplo de programa – Printf com inteiros #include <stdio.h> main(void) { int vari = 2; float varx = 2.4f; printf("Exemplos : vari = %d, varx = %f \n", vari,varx); printf("A porcentagem da população é %d %% \n",85); } • saída do programa Exemplos : vari = 2, varx = 2.4 A porcentagem da população é 85 % Exemplode programa – Printf com Ponto Flutuante #include <stdio.h> int main( void) { printf(“%4.2f\n”,3456.783f); printf(“%3.2f\n”,3456.783f); printf(“%3.1f\n”,3456.783f); printf(“%10.3f\n”,3456.783f); } • saída do programa 3456 .78 3456 .78 3456 .8 3456 .783 ▪IF Estruturas de Decisão ▪Switch Estruturas de Decisão em C A linguagem C, tanto quanto qualquer outra linguagem, possui estrutura de decisão. Podem ser do tipo: • if • if–else • if–elseif-else • Vamos ver um exemplo da última, que é a mais comum. Estrutura de Decisão if – elseif - else int result = 0; if (result == 0) printf(“O valor da variável é zero."); else if( result == 1) printf(" O valor da variável é um."); e assim por diante, criando uma estrutura de seleção(decisão) encadeada. Estrutura de Decisão if – elseif - else Exemplo de IF #include<conio.h> #include<stdio.h> int main(void) { int n1, n2, media=0; printf("Digite a Nota 1: "); scanf("%d", &n1); printf("Digite a Nota 2: "); scanf("%d", &n2); media = (n1 + n2)/2; if (media >= 7) { printf("Aluno Aprovado"); } else { printf("Aluno Reprovado"); } getch(); return(0); } As chaves não são obrigatórios quando apresentam apenas um comando Exemplo de IF – else - if #include<conio.h> #include<stdio.h> int main(void) { int n1, n2, media=0; printf("Digite a Nota 1: "); scanf("%d", &n1); printf("Digite a Nota 2: "); scanf("%d", &n2); media = (n1 + n2)/2; if (media >= 7){ printf("Aluno Aprovado"); } else if (media < 4) { printf("Aluno Reprovado"); } else { printf("Na Final"); } getch(); return(0); } Exemplo de IF – else - if #include<conio.h> #include<stdio.h> int main(void) { int n1, n2, media=0; printf("Digite a Nota 1: "); scanf("%d", &n1); printf("Digite a Nota 2: "); scanf("%d", &n2); media = (n1 + n2)/2; if (media >= 7){ printf("Aluno Aprovado"); } else if (media < 4) { printf("Aluno Reprovado"); } else { printf("Na Final"); } getch(); return(0); } Estruturas Switch •SWITCH é uma declaração de múltipla escolha, diferente do if que caso tenha uma lista de escolha a ser montada não fica elegante e dependendo a extensão do programa fica difícil a manutenção. Switch (variável) { Case constante1: Comandos; Break; Case constante2: Comandos; Break; Case constante3: Comandos; Break; default comandos; } Exemplo de Switch #include <iostream> using namespace std; int main(void) { char grade; cout << "Digite a sua grade (A to F): "; cin >> grade; switch (grade) { case 'A': cout << "Sua idade está entre 90 - 100"<< endl; break; case 'B': cout << "Sua idade está entre 80 - 89"<< endl; break; case 'C': cout << "Sua idade está entre 70 - 79"<< endl; break; case 'D': cout << "Sua idade está entre 60 - 69"<< endl; break; default: cout << "Sua idade é menor que 60" << endl; } return 0; } O objeto cout representa o stream de saída no C++. Este stream é uma espécie de sequencia (fluxo) de dados a serem impressos na tela. Para realizar a impressão, usa-se o "operador de inserção" que "insere" dados dentro do stream. O objeto cin representa o stream de entrada no C++. Ele realiza a leitura de um sequencia de dados, sem espaços e sem tabulações, vindas do teclado. Para coletar estes dados armazenados, usa-se o "operador de extração" que "extrai" dados do stream. Exemplo de Switch #include<conio.h> #include<stdio.h> int main() { int opcao, valor; printf("Converter: \n"); printf("1: Decimal para Hexadecimal.\n"); printf("2: Hexadecimal para Decimal.\n"); printf("\nInforme sua Opcao.\n"); scanf("%d", &opcao); switch(opcao) { case 1: printf("\nInforme o valor em decimal: "); scanf("%d", &valor); printf("%d em hexadecimal e: %x", valor, valor); break; case 2: printf("\nInforme o valor em hexadecimal: "); scanf("%x", &valor); printf("%x em decimal e: %d", valor, valor); break; default: printf("\nOpcoes invalidas. tente outra vez."); } getch(); } ▪Do While Estruturas de Repetição ▪FOR ▪FOR Estrutura de Repetição Estrutura de Repetição Estrutura de repetição For Laço FOR Laço utilizado geralmente quando existe um termino definido, sempre vai tem um fim definido para esse laço implementado no inicio. Sintaxe For (variável de inicialização; condição; incremento) Variável de inicialização: comando de atribuição que inicia uma variável que faz o controle do laço. Condição: expressão usada que determinará o final do laço. Incremento: define a variável de controle e muda a cada passada no laço. Estrutura de repetição For /*programa que imprime o quadrado e o cubo de conjunto de 100 valores inteiros */ #include<math.h> #include<stdio.h> Int main ( void) { int C, I; for (C=1;C<=100;C=C+1) { /*aqui NÃO tem ponto-e-vírgula */ printf(“Entre com um valor inteiro: “); scanf(“%d”,&I); printf(“%d | %f | %f \n”, I, pow(I,2), pow(I,3) ); } } Estrutura de repetição For #include<conio.h> #include<stdio.h> int main() { int i; for (i=0; i<10; i++) { printf("%d\n",i); } getch(); } getch() espera que o usuário digite uma tecla e retorna este caractere. Você pode estar estranhando o fato de getch() retornar um inteiro, mas não há problema pois este inteiro é tal que quando igualado a um char a conversão é feita corretamente. A função getche() funciona exatamente como getch(). A diferença é que getche() gera um "echo" na tela antes de retornar a tecla. Estrutura de repetição For Estrutura de repetição For #include<conio.h> #include<stdio.h> int main( void) { int i,a,soma; soma=0; for (i=0; i<5; i++) { printf("Digite um numero:"); scanf("%d",&a); soma=soma+a; } printf("\n A soma é: %d",soma); getch(); } Se a tecla pressionada for um caractere especial estas funções retornam zero. Neste caso você deve usar as funções novamente para pegar o código da tecla estendida pressionada. #include<conio.h> #include<stdio.h> int main( void) { int i; float a,soma,media; soma=0; for (i=0; i<5; i++) { printf("Digite a altura da pessoa: %d\n",i+1); scanf("%f",&a); soma=soma+a; } printf("\n A soma é: %.2f",soma/5); getch(); } Estrutura de repetição For Estrutura de repetição While Estrutura de repetição While #include<conio.h> #include<stdio.h> int main() { int continua, contador;continua = 's'; contador = 0; while (continua == 's') // enquanto for igual a 's' { // comandos a serem repetidos printf("Repentindo....\n"); contador = contador + 1; printf("Tecle 's' se deseja continuar\n"); continua = getch(); } if (contador == 0) printf("O bloco NAO foi repetido."); else printf("O bloco foi repetido %d vezes", contador); } #include<conio.h> #include<stdio.h> int main() { int i=0; do { i++; printf("%d\n", i); } while(i <= 10); getch(); } Estrutura de repetição While O getch() como também o getche() retorna a tecla digitada, muito usado em menus com switch.(Diferença entre os dois é que o getch() não mostra a tecla que digitou na tela, já o getche() mostra na tela qual foi a tecla digitada) #include <stdio.h> main() { char produto[21]; int i , qtdmaisde50, qtdmenosde50 ; float preco; qtdmaisde50 = 0; qtdmenosde50 = 0; for (int i =1; i <= 5; i++){ printf(" Informe um nome do produto e a seguir tecle ENTER\n"); scanf ( "%21[^\n]", produto); printf(" Agora informe o preco do produto a seguir tecle ENTER\n"); scanf ( "%f", &preco); if (preco > 50) { qtdmaisde50 = qtdmaisde50 + 1;} else { qtdmenosde50 = qtdmenosde50 +1; } getchar(); } printf(" a quantidade de produtos que custam mais de 50 reais : %d\n", qtdmaisde50); printf(" a quantidade de produtos que custam menos de 50 reais : %d\n", qtdmenosde50); } Estrutura de repetição While ▪Function Sub Rotinas ▪Procedure Funções e procedimentos Procedimento: é um conjunto de instruções que desviam o fluxo de sequência de um programa, podendo ou não receberparâmetros, porém, não retorna nenhum valor. Função: é um conjunto de instruções que desviam o fluxo de execução de um programa, podendo ou não receber parâmetros, porém, deve, obrigatoriamente, retornar um valor. Uma função Um procedimento Chamada de Função e de procedimento PRÓXIMOS PASSOS Equações Lineares Sistemas Lineares Métodos de solução de equações não lineares I Métodos de solução de equações não lineares II OBRIGADO Adilson da Silva adilson.silva@sereducacional.comMestre
Compartilhar