Baixe o app para aproveitar ainda mais
Prévia do material em texto
04/06/2013 1 João Monlevade, 4 de junho de 2013 Universidade Federal de Ouro Preto Campus João Monlevade Prof. Mateus Ferreira Satler CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Sistemas de Numeração ◦ Base, notação posicional e conversão de base. Sistemas Computacionais ◦ Processador, memória, linguagens de programação e sistema operacional. Algoritmos ◦ Ação, estado, processo, padrão de comportamento, algoritmo, aspectos estático e dinâmico de um algoritmo e formas de representação de algoritmos. 2 04/06/2013 2 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Para cada comando serão apresentadas a sua: ◦ Sintaxe: formato geral do comando que deve ser aceita e respeitada como padrão. ◦ Semântica: o significado da ação realizada pelo comando, em tempo de execução. ◦ No texto (estático) de um programa (ou algoritmo), um valor pode ser representado na forma de constante ou de variável. ◦ A constante é representada em um programa diretamente pelo seu valor (que não se altera durante a execução do programa). 3 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER A variável é representada no texto de um programa por um nome que corresponde a uma posição da memória que contém o seu valor. Em tempo de execução, o nome da variável permanece sempre o mesmo e seu valor pode ser modificado. Nome de variável: é criado pelo programador e deve ser iniciado por uma letra que pode ser seguida por tantas letras, algarismos ou sublinha quanto se desejar e é aconselhável que seja significativo do valor que ela representa. 4 04/06/2013 3 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Exemplos de nomes de variáveis: ◦ Certo: nome, telefone, salario_func, x1 L, a, de, op1, V9a, Lista_Notas, a_2, p56, A1 ◦ Errado: 1ano, sal/hora, _nome x+, t.6, 43x, &ah, $dolar, Lista-Notas, n!, %p 5 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Em C, todas variáveis devem ser explicitamente declaradas, isto é, devemos especificar: ◦ Tipo de dado ◦ Nome (ou identificador) Obs: A linguagem C é case sensitive, ou seja, as letras maiúsculas diferem das minúsculas. ◦ Os seguintes nomes são distintos: PESO Peso peso peSo Uma variável não pode ter o mesmo nome de uma palavra-chave de C, como por exemplo: ◦ main, cout, int, float, char, short, return, case, void 6 04/06/2013 4 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Todo valor (constante ou variável) de um programa tem um tipo de dados associado. ◦ Um tipo de dados é constituído de dois conjuntos: Um conjunto de objetos (domínio de dados) Um conjunto de operações aplicáveis aos objetos do domínio. ◦ Toda linguagem de programação tem embutido um conjunto de tipos de dados, também chamados de implícitos, primitivos ou básicos. ◦ Tipos de dados básicos: inteiro, real, caracter e lógico. ◦ Em C, os tipos acima são, respectivamente, int, float/double e char. Não há o tipo lógico em C. 7 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER inteiro: ◦ Domínio: conjunto dos inteiros. ◦ Operações: usam dois argumentos inteiros e, de acordo com o resultado são: +, -, *, div, e mod: resultado inteiro /: resultado real <, ≤, =, >, ≥ e ≠: resultado lógico real: ◦ Domínio: conjunto dos reais. ◦ Operações: usam dois argumentos reais e, de acordo com o resultado são: +, -, * e /: resultado real <, ≤, =, >, ≥ e ≠: resultado lógico 8 04/06/2013 5 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER caracter: ◦ Domínio: conjunto de caracteres alfanuméricos. ◦ Operações: usam dois argumentos do domínio e fornecem resultado lógico: <, ≤, =, >, ≥ e ≠ lógico: ◦ Domínio: {verdadeiro, falso}. ◦ Operações: usam dois argumentos do domínio e fornecem resultado lógico: Conectivos lógicos: conjunção (e, ∧), disjunção (ou, ∨), disjunção exclusiva (xou, ⊕), negação (não, ¬). A negação trabalha com somente um argumento. Conectivos relacionais: = e ≠. 9 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Quando você declara um identificador dá a ele um tipo. Um tipo de objeto de dados determina como valores de dados são representados, que valores pode expressar, e que tipo de operações você pode executar com estes valores. Obs: Alguns sistemas trabalham com valores inteiros de 2 bytes, com faixa de -32768 a 32 767. 10 Tipo Espaço que ocupa na memória Faixa char 1 byte -128 a 127(incluindo letras e símbolos) int 4 bytes -2147483648 a 2147483647 float 4 bytes 3.4E-38 a 3.4E+38(6 casas de precisão) double 8 bytes 1.7E-308 a 1.7E+308(15 casas de precisão) 04/06/2013 6 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER A tabela abaixo apresenta os operadores que são diferentes em C em relação a pseudolinguagem. Não há correspondente direto em C para o operador “div” . 11 Pseudolinguagem C Mod % ≤ <= ≥ >= = == ≠ != CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER O operador de atribuição “←” em C é o sinal de igual “=” ◦ Sintaxe: <variavel> = <expressão>; ◦ Exemplos: 12 04/06/2013 7 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Operadores Aritméticos ◦ Exemplos: 13 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER O tipo básico associado a uma constante fica determinado pela própria apresentação da constante. Exemplos: ◦ 7 → cte. inteiro ◦ 7.0 ou 7. → cte. real ◦ ‘7’ → cte. caracter ◦ falso → cte. lógico Para as variáveis, devem ser feitas no início do programa (ou de um bloco) as declarações (de tipo) de variáveis. 14 04/06/2013 8 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Conversão de Tipo ◦ Conversões automáticas de valores na avaliação de uma expressão. 15 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Conversão de Tipo ◦ É possível explicitamente fazer a conversão de tipos usando o operador cast. ◦ Sintaxe: (tipo) variável 16 04/06/2013 9 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Sintaxe: <tipo> nome (s); Implicações da declaração de uma variável: ◦ Alocação de um espaço na memória que possa conter um valor do seu tipo. ◦ Associação do endereço dessa posição da memória ao nome da variável. 17 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER As variáveis só podem armazenar informações ou dados sempre de um mesmo tipo (inteiro, real, caractere ou char). Toda e qualquer variável deve ser declarada e sua declaração deve ser feita antes de sua utilização no programa. 18 04/06/2013 10 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Exemplos: ◦ caracter f, n; ◦ inteiro idade; ◦ real a, b, X1; ◦ lógico vendido; Declarada uma variável, toda vez que ela for referenciada em qualquer comando do programa, o computador vai trabalhar com o conteúdo de seu endereço, que é o valor da variável. 19 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Mais exemplos: 20 04/06/2013 11 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Erro comum: uso de variáveis com valor não inicializado. Declarar variável sem explicitamente inicializar seu valor. Valor indefinido (lixo) 21 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER 1. Indique quais das constantesabaixo são do tipo inteiro (int): ( )1000 ( ) 0 ( ) -900 ( )verdadeiro ( )-456 ( )34 ( )-1.56 2. Indique quais das constantes abaixo são do tipo real (float): ( ) -678.0 ( ) 0.87 ( ) -9.12 ( ) falso ( ) -456.0 ( ) Cinco ( ) -1.56 3. Indique quais das constantes abaixo são do tipo lógico: ( ) -678.0 ( ) 0.87 ( ) -9.12 ( )falso ( )-456 ( ) Verdadeiro ( )-1.56 22 04/06/2013 12 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER 4. Indique com um X os nomes válidos para uma variável: ( ) endereco ( ) 21brasil ( ) nome_usuario ( ) nome*usuario ( ) cidade3 ( ) #cabec 23 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Comando de Atribuição ◦ Sintaxe: variável ← expressão; ◦ Semântica: atribuir à variável o resultado da expressão. ◦ Expressões aritméticas: fornecem resultado numérico (inteiro ou real). Operações básicas: +, -, *, / Funções matemáticas comuns: sem (X), cos(X), abs(X), raiz(X), arctan(X), log(X), ln(X), etc. Operadores para inteiros: M mod I: resto da divisão inteira de M por I M div I: quociente da divisão inteira de M por I 24 04/06/2013 13 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Comando de Atribuição ◦ Expressões lógicas: fornecem resultado lógico. Conectivos relacionais: (<, ≤, =, >, ≥ e ≠) Conectivos lógicos: Conjunção: e, ∧ Disjunção: ou, ∨ Disjunção Exclusiva: xou, ⊕ Negação: não, ¬ 25 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Comando de Atribuição ◦ Tabela Verdade: Sejam A e B duas expressões lógicas 26 A B A e B A ou B A xou B não A V V V V V F V F F V F F F V F V F V F F F F V V 04/06/2013 14 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Comando de Atribuição ◦ Prioridade de execução das operações em uma expressão: 1) Parênteses (dos mais internos para os mais externos) 2) Expressões aritméticas, seguindo a ordem: funções, * e /, + e - 3) Comparações: <, ≤, =, >, ≥ e ≠ 4) não 5) e 6) ou e xou 7) Da esquerda para a direita quando houver indeterminações. 27 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Comentários ◦ inteiro maior; //maior valor lido ◦ //ler os valores das variáveis A, B, C 28 04/06/2013 15 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Bloco 1. Conjunto de comandos entre { } 2. Pode-se declarar variáveis em seu interior. 3. Delimitar o escopo das variáveis. { <declaração de variáveis>; <comandos>; } 29 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Impressão ◦ A exibição dos resultados do processamento e de mensagens é feita através da função pré-definida printf(), cujo protótipo está contido também no arquivo stdio.h. Sua sintaxe é a seguinte: printf ("Expressão" , Lista de argumentos ); ◦ Onde: Expressão: contém mensagens a serem exibidas, códigos de formatação que indicam como o conteúdo de uma variável deve ser exibido e códigos especiais para a exibição de alguns caracteres especiais. Lista de argumentos: pode conter identificadores de variáveis, expressões aritméticas ou lógicas e valores constantes. 30 04/06/2013 16 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Impressão ◦ Exemplo: 31 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Impressão de Tipos de Dados 32 04/06/2013 17 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Impressão de Tipos de Dados 33 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Impressão de Tipos de Dados 34 04/06/2013 18 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Impressão de Códigos Especiais 35 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Fixando as Casas Decimais ◦ Por default, a maioria dos compiladores C exibem os números de ponto flutuante com seis casas decimais. ◦ Para alterar este número podemos acrescentar .n ao código de formatação da saída, sendo n o número de casas decimais pretendido. 36 04/06/2013 19 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Alinhamento de Saída ◦ O programa pode fixar a coluna da tela a partir da qual o conteúdo de uma variável, ou o valor de uma constante será exibido. Isto é obtido acrescentando-se um inteiro m ao código de formatação. Neste caso, m indicará o número de colunas que serão utilizadas para exibição do conteúdo. 37 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Leitura de Dados – scanf() ◦ Ela é o complemento de printf() e nos permite ler dados formatados da entrada padrão (teclado). Sua sintaxe: scanf ("Expressão de Controle" , Argumentos ); ◦ Entendendo o scanf: 38 04/06/2013 20 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Leitura de Dados – scanf() 39 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Leitura de Dados – scanf() 40 04/06/2013 21 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER 1. Sequência Simples ◦ Semântica: o controle de fluxo de execução entra na estrutura, executa comando por comando, de cima para baixo e sai da estrutura. 41 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER Foram estudados os seguintes recursos visando especificamente a construção de algoritmos: ◦ Conceito de Constante, Variável e Tipos de Dados. ◦ Tipos de Dados Básicos. ◦ Declaração de Variáveis. ◦ Construção de Expressões (Aritmética e Lógica). ◦ Sintaxe e Semântica dos Comandos de Atribuição e de Entrada e Saída. ◦ Sequência Simples (primeiro dos três tipos de estruturas de controle). Já é possível criar alguns algoritmos simples, bastando adotar um método de desenvolvimento. 42 04/06/2013 22 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER a) Método Direto 1. Entender o problema (análise do enunciado). 2. Descrição de variáveis: lista contendo para cada variável, o seu nome, uma descrição de seu objetivo e o seu tipo. Iniciar a lista pelos dados de entrada e pelos resultados a produzir. 3. Estudo de métodos: estabelecer (pelo menos) um método para obtenção de cada resultado pedido e para cada controle de processamento. Caso o método escolhido necessite utilizar novas variáveis, incluí-las na lista de descrição de variáveis. 43 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER a) Método Direto 1. Elaborar um algoritmo baseado no estudo de métodos, observando a seguinte sequência: 44 04/06/2013 23 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER a) Método Direto 1. Testar o algoritmo, considerando, se possível, todas as alternativas de entrada. 2. Programa: traduzir o algoritmo para uma linguagem de programação e testá-lo exaustivamente no computador. 3. Documentação: o conjunto de documentos produzidos ao longo do método direto constitui a primeira documentação técnica do programa. 45 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER b) Método dos Refinamentos Sucessivos ◦ Inicialmente, manter um nível mais alto de abstração (atenção em o que fazer e não em como fazer). ◦ Dispensa-se o estudo de métodos e parte-se logo para a elaboração do algoritmo sendo que cada tarefa lógica distinta será representada por um pseudocomando. 46 04/06/2013 24 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRASATLER b) Método dos Refinamentos Sucessivos ◦ A primeira versão do algoritmo é rapidamente obtida pela listagem de alguns poucos pseudocomandos que deverão ser detalhados em refinamentos posteriores (em função de outros pseudocomandos ou em função da própria pseudolinguagem). ◦ Depois que todos os pseudocomandos já estiverem detalhados em termos da pseudolinguagem, pode- se juntar as partes montando a versão final e completa do algoritmo. 47 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER c) Método Misto ◦ Controles de caráter geral e as ações mais simples são desenvolvidas diretamente e a técnica de refinamentos sucessivos fica somente para as ações lógicas consideradas mais complexas. ◦ Observação: Em qualquer dos métodos, pode-se desenvolver as ações lógicas bem definidas na forma de procedimentos (ou funções). A utilização destes módulos funcionais constitui uma técnica (programação modular) que geralmente diminui o esforço do programador e aumenta a qualidade de seus programas. 48 04/06/2013 25 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER 1. Desenvolver os algoritmos a seguir, utilizando o método direto. a) Ler uma temperatura em graus Celsius e apresentá-la convertida em graus Fahrenheit. A fórmula de conversão: F ← (9*C+160)/5 b) Calcular e apresentar o volume de uma lata de óleo cilíndrica, a partir da leitura do raio da base e da altura. c) Ler os valores do comprimento, da largura e da altura de uma caixa, calcular e imprimir o seu volume. 49 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER 2. Construir um algoritmo para ler 5 valores inteiros, calcular e imprimir a soma desses valores. 3. Construir um algoritmo para ler 6 valores reais, calcular e imprimir a média aritmética desses valores. 4. Fazer um algoritmo para gerar e imprimir o resultado do número H, sendo: H = 1 + 1/2 + 1/3 + 1/4 + 1/5 50 04/06/2013 26 CEA 030 – Programação de Computadores I PROF. MATEUS FERREIRA SATLER 5. Fazer um programa que imprima o seu nome. 6. Modificar o programa anterior para imprimir na primeira linha o seu nome, na segunda linha a sua idade e na terceira sua altura. 7. Imprimir o valor 2.346728 com 1, 2, 3 e 5 casas decimais. 51
Compartilhar