Baixe o app para aproveitar ainda mais
Prévia do material em texto
MATA40 – Estrutura de dados e Algoritmos I Aula 2 –Revisão Linguagem C Turma 03 Semestre: 2017.2 Prof. Igo Amauri dos S. Luz Algoritmos • Um algoritmo pode ser definido como uma sequência de instruções para solucionar um determinado problema. • Deve-se seguir uma ordem, portanto precisa ser utilizada a lógica. • As instruções devem ser finitas e não ambígua. • A partir de um estado inicial, após determinado tempo finito, é produzido um estado final. • Uma solução em algoritmo pode ser traduzida para qualquer linguagem de programação. 2 Algoritmos • Por que NÃO ambíguo? • Cada instrução do algoritmo deve ser precisamente definida, sem permitir mais de uma interpretação de seu significado. • Os algoritmos devem se basear no uso de um conjunto de instruções bem definido, que constituem um vocabulário de símbolos limitado. 3 Algoritmos • Um exemplo de algoritmo no nosso dia a dia. 4 Algoritmos • Basicamente, existem 3 tipos de processamento • Processamento sequencial • Processamento condicional • Processamento com repetição • Repetição determinada • Repetição indeterminada 5 Algoritmos • Processamento sequencial • As instruções são executadas uma após a outra • Não existe desvio na sequência das instruções • Cada instrução é executada uma única vez 6 Leia nota1 Leia nota2 media = (nota1 + nota2)/2 Imprima media Algoritmos • Processamento sequencial 7 Leia nota1 Leia nota2 media = (nota1 + nota2)/2 Imprima media Leia nota1 Leia nota2 Imprima media media = (nota1 + nota2)/2 Leia nota1 media = (nota1 + nota2)/2 Leia nota2 Imprima media Algoritmos • Processamento condicional • Um conjunto de instruções pode ou não ser executado; • Depende de uma condição; • Se a condição testada for verdadeira, o conjunto de instruções é executado. 8 Leia nota1 Leia nota2 Se nota1 > nota2 Imprima nota1 Senão Imprima nota2 Leia nota1 Leia nota2 Imprima nota1 Leia nota1 Leia nota2 Imprima nota2 Algoritmos • Processamento com repetição: • Um conjunto de instruções é executado um número definido ou indefinido de vezes; • Repetem um conjunto de comandos em seu interior; • Pode ser determinada por uma condição de parada. 9 Leia N soma = 0 nro = 1 Enquanto nro <= N soma = soma + nro nro = nro + 1 Imprima soma Linguagem C • Estrutura básica de um programa em C: 10 #include <stdio.h> #include <stdlib.h> int main() { printf(“Hello World”); system(“pause”); return 0; } #include <biblioteca> <declaração de constantes e variáveis globais> void main(){ <declaração de constantes e variáveis locais> <comandos da linguagem C> } Linguagem C – Include • Estrutura básica de programa em C 11 #include <biblioteca> <definição de constantes e variáveis globais> void main(){ <definição de constantes e variáveis locais> <comandos da linguagem C> } Linguagem C – Constantes e Variáveis • Constantes e variáveis representam uma posição na memória. • São responsáveis por armazenar informações de um programa. • Constantes possuem valores fixos. • Variáveis têm seu conteúdo alterado ao longo da execução de um programa. • São identificadas através de rótulos. 12 Linguagem C – Constantes e Variáveis • Declaração de variáveis e constantes: • Informa ao programa quais os dados serão armazenados; • Define qual o tipo do dado será armazenado • Sintaxe: • <tipo de dado> nome-da-variável; 13 Linguagem C – Constantes e Variáveis • As variáveis só podem armazenar valores de um mesmo tipo. • Programador deve definir o tipo de cada variável através da declaração. • Tipos mais comuns: • Tipo inteiro: int • Tipo caractere: char • Tipos ponto flutuante: float, double. • Tipo sem valor: void 14 char nome; int idade; Linguagem C – Constantes e Variáveis Tipo Tamanho aproximado em bits Faixa mínima char 8 -127 a 127 int 16 -32.767 a 32.767 unsigned int 16 0 a 65.535 long int 32 -2.147.483.647 a 2.147.483.647 float 32 Seis dígitos de precisão double 64 Dez dígitos de precisão 15 Linguagem C –Atribuições • Comandos de atribuições são utilizados para conceder valores ou operações para variáveis. • O valor da atribuição precisa ser compatível com o tipo da variável. • O operador de atribuição é o = • Sintaxe: • nome_da_variável = expressão, valor ou constante; 16 char sexo; int idade; sexo = 'm'; Idade = 25; Idade = idade + 1; Linguagem C –Operadores • Aritméticos • Incremento e Decremento • Lógicos • Comparação • Atribuição 17 Linguagem C –Operadores • Expressões aritméticas possuem operadores aritméticos e os operandos são constantes e/ou variáveis numéricas. 18 Operador Exemplo Descrição + x + y Soma o conteúdo de x e de y. - x - y Subtrai o conteúdo de y do conteúdo de x * x * y Multiplica o conteúdo de x pelo conteúdo de y / x / y Obtém o quociente da divisão de x por y Linguagem C –Operadores • Expressões relacionais representam comparações entre dois valores de mesmo tipo. 19 Operador em C Exemplo Descrição == x == y Conteúdo de x é igual ao de y. != x != y Conteúdo de x é diferente de y. > x > y Conteúdo de x é maior que o conteúdo de y. < x < y Conteúdo de x é menor que o conteúdo de y. >= x >= y Conteúdo de x é maior ou igual que o conteúdo de y. <= x <= y Conteúdo de x é menor ou igual que o conteúdo de y. Linguagem C –Operadores • Expressões lógicas possuem operadores lógicos e operandos relacionais, constantes e/ou variáveis do tipo lógico. 20 Operador em C Exemplo em C Descrição ! !(x>5) Representa a negação lógica && (x>5 && x<10) Representa o E lógico || (x>15 || y<2) Representa o OU lógico Linguagem C – Include • A diretiva #include permite incluir uma biblioteca • Bibliotecas possuem funções pré-definidas que podem ser utilizadas pelo programa 21 Biblioteca Descrição #include <stdio.h> Funções de entrada e saída #include <math.h> Funções matemáticas Comando de Entrada e Saída • Possibilita a comunicação entre usuário e computador e entre diferentes dispositivos. • Na linguagem C as operações de E/S são realizadas através da chamada de funções da biblioteca padrão. • Existe operações de E/S pelo console e por meio de arquivo. 22 Comando de Entrada e Saída • Operações pelo console da biblioteca stdio.h: 23 Função Protótipo Operação getchar() int getchar(void); Lê um caractere do teclado. putchar() int putchar(int c); Escreve um caractere na tela. gets() char *gets(char *str); Lê uma string do teclado. puts() int puts(const char *str); Escreve uma string na tela. Comando de Entrada e Saída • Operações pelo console da biblioteca stdio.h: • Realizam E/S formatada 24 Função Protótipo Operação printf() int printf(const char *string_controle, ...); Escreve dados no vídeo. scanf() int scanf(const char *string_controle, ...); Lê dados do teclado. Comando de Entrada e Saída • Operações pelo console da biblioteca stdio.h: • Realizam E/S formatada; • Alguns comandos de formato: • Exemplo: • printf(“%s”, “Esse é um teste simples”); 25 Código Formato %c Caractere %d Inteiros decimais com sinal %u Inteiros decimais sem sinal %f Ponto flutuante decimal %s String de caracteres Estrutura Condicional • Comandos condicionais permitem a alteração do fluxo de execução do programa baseado na avaliação de expressões lógicas. 26 IF condição { comando_1; comando_2; } ELSE { comando_3; comando_4; } Estrutura Condicional • Comando switch/case trata situações mutuamente exclusivas. •Reduz a complexidade de vários if...else encadeados. 27 switch (variável) { case valor1: comandos; break; case valor2: comandos; break; default: comandos; } Estrutura Condicional • Exemplo de um programa em C. 28 #include <stdio.h> // biblioteca padrão de Input/Output #include <stdlib.h> void main() { int valor1, valor2; valor1 = rand(); /*gera um valor randômico */ valor2 = rand(); /*gera um valor randômico */ if(valor1 > valor2){ printf(“valor1 maior que valor2”); } else { printf(“valor1 não é maior que valor2”); } } Estrutura de Repetição • Permite que uma sequência de comandos seja executada repetidamente até que uma determinada condição de parada seja satisfeita. 29 WHILE condição DO BEGIN comando1; comando2; END; Estrutura de Repetição • Permite que uma sequência de comandos seja executada repetidamente até que uma determinada condição de parada seja satisfeita. 30 for (i = valor_inicial; condição; incremento_ou_decremento de i) { comando1; comando2; } while (condição) { comando1; comando2; } Estrutura de Repetição • Exemplo de um programa em C 31 #include <stdio.h> // biblioteca padrão de Input/Output #include <stdlib.h> void main() { int valor1, valor2,i; for(i = 0; i < 5; i = i + 1){ valor1 = rand(); /*gera um valor randômico */ valor2 = rand(); /*gera um valor randômico */ printf(“Conteúdo de valor1 é: %d”, valor1); printf(“Conteúdo de valor2 é: %d”, valor2); } printf(“Laço for foi finalizado”); } Estrutura de Repetição • Exemplo de um programa em C 32 #include <stdio.h> // biblioteca padrão de Input/Output #include <stdlib.h> void main() { int valor1, valor2,i; valor1 = 10; valor2 = 20; while(valor1 < valor2){ valor1 = rand(); /*gera um valor randômico */ valor2 = rand(); /*gera um valor randômico */ printf(“valor1 é menor que valor2”); } printf(“Laço while foi finalizado”); } Exercícios 1) Escreva um programa que, dados três valores inteiros diferentes entre si, apresente o maior de tais valores. 2) Escreva um programa que implemente uma calculadora capaz de realizar as operações de: Soma, Subtração, Multiplicação e Divisão. • O programa deve solicitar ao usuários os operandos e qual operação deseja realizar com determinado operando. • O resultado da operação deve ser apresentado ao usuário. 3) Escreva um programa que calcule o n-ésimo elemento da sequência de Fibonacci. 4) Escreva um programa que converta um número decimal em binário. 33 Exercícios 5) Um ciclones tropical consiste em uma tempestade muito violenta que, sob determinadas condições, adquire um movimento de rotação em torno de uma região de baixa pressão atmosférica. Um ciclone pode atingir um diâmetro de até 500 km. Furacões são os mais violentos desses ciclones e chegam a produzir ventos de até 320 km/h. Na tabela abaixo, são apresentados alguns dados relativos à classificação dos furacões segundo a escala Saffir-Simpson: • Escreva um programa que leia a velocidade do vento aferida durante uma tempestade e apresente ao usuário a classificação do furacão caso a tempestade possa ser classificada como tal. 34 Classificação Velocidade dos Ventos (Km/h) Tempestade Tropical 62 a 118 Furação de categoria 1 119 a 153 Furação de categoria 2 154 a 177 Furação de categoria 3 178 a 209 Furação de categoria 4 210 a 249 Furação de categoria 5 Maior que 249
Compartilhar