Prévia do material em texto
LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO Unidade II Bloco I ⚬ Linguagem C A linguagem de programação C foi criada em 1972 por Dennis Ritchie nos Laboratórios Bell e no AT&T para desenvolver o sistema operacional Unix. C é uma linguagem geral, estruturada e compilada, reconhecida pela ISO. Ela se destaca pela flexibilidade, portabilidade e eficiência, sendo usada para desenvolver diversas aplicações, por exemplo: jogos eletrônicos, sistemas de controle de satélites, sistemas operacionais, como o Unix e o Linux. Vantagem: Programas em C podem rodar em várias plataformas sem grandes alterações, oferecendo rapidez e economia de memória. Regras da Linguagem C Todo texto delimitado por /* e */ é considerado como comentário, podendo ter uma ou várias linhas. O comando // serve como comentário de apenas uma linha. A diretiva #include causa a inclusão de arquivos de cabeçalho contendo declarações necessárias à compilação, exemplo: #include O comando include inclui o arquivo-cabeçalho stdio.h, onde há uma série de funções de entrada e saída de dados, por exemplo printf() e scanf(). As chaves { e } servem para delimitar um bloco de instruções, ou seja, início e fim do bloco. Importante destacar também que C é sensível a maiúsculas e minúsculas, ou seja, as letras maiúsculas diferem das minúsculas (case sensitive). Aluno é diferente (≠) de aluno As variáveis devem ser declaradas antes de serem usadas, logo no início do bloco. A sintaxe em C é muito rígida (regras detalhadas). Tipos: Propriedade dos dados (obrigatório para declarar o tipo da variável). Declarações: Definem o identificador, para alocar memória, definir conteúdo inicial e determinar funções. Expressões: Fórmulas que atribuem e alteram valores. Funções: São sub-rotinas ou subprogramas que executam tarefas específicas em C. Há funções básicas que estão definidas nas bibliotecas-padrão da linguagem e outras que são desenvolvidas por terceiros, com rotinas específicas. Exemplos de Funções: main(): Função principal onde a execução do programa começa. printf(): Função usada para imprimir texto e valores na saída-padrão. scanf(): Função usada para ler os dados a partir do teclado. Os parênteses após o nome de uma função, como em main(), são obrigatórios. A primeira função que o programa executa é o main(), portanto é obrigatória a sua declaração no programa principal. Regras da Linguagem C: Comandos de Entrada e Saída A linguagem C utiliza os comandos de entrada e saída por meio de funções, por exemplo: através da biblioteca-padrão stdio.h (Standard Input Output). A inclusão é inserida no início do programa por meio da instrução: #include Função que executa a visualização de informações na tela printf() printf(“ formato ” , lista de variáveis/expressões); Função que permite a entrada de dados pelo teclado scanf() scanf(“ formato ”, &variável); Palavras Reservadas pelo Padrão Ansi A tabela abaixo lista palavras-chave reservadas pela linguagem C. As palavras-chave não podem ser abreviadas, usadas como nomes de variáveis ou usadas como identificadores. Conforme o compilador, poderão existir mais palavras-chave Estrutura de um Programa em C void main(): Define o nome da função main. Todo programa em C precisa ter essa função, pois essa é premissa de funcionamento e é a função que o programa executa ao ser inicializado. A palavra void indica que a função não retorna valor. Ao executar o programa, teremos uma mensagem no console do DOS dizendo: Bloco II Tipos Primitivos de Dados Tipos primitivos de dados: em C temos os seguintes tipos básicos de variáveis: lógico: A linguagem C trata como verdadeiro (true) o valor inteiro 1 e como falso (false) o valor inteiro 0. char: Guarda um caractere ou uma cadeia de caracteres, declarando um vetor de char[]; int: Guarda um número inteiro; float: Guarda um número real, ou seja, valores com ponto e vírgula, com determinada precisão; double: Guarda um número real com precisão maior que o tipo float; void: Tipo vazio. A dimensão do float é de 4 bytes (precisão simples) e a do double é de 8 bytes (precisão dupla). Tipos de Informações, Variáveis e Constantes Para declarar uma constante, acrescenta-se a palavra-chave const no início e atribui-se um valor a ela. Sintaxe para declaração de constante: const = valor; Exemplo: const float pi = 3.14159; A linguagem C permite também atribuir valor no momento da declaração da variável, assim como declarar muitas variáveis do mesmo tipo na mesma linha, ou realizar ambas as ações. Para declarar uma variável, temos a seguinte sintaxe: ; Exemplo: int a; /* declara uma variável do tipo int */ float a; /* declara uma variável do tipo float */ int a = 5; // declara e armazena o valor 5 em a int a, b, c; // declara várias variáveis do tipo int int a, b = 6, c; /* declara várias variáveis do tipo int atribuindo valor a uma ou a todas as variáveis*/ Declaração de variáveis: Exemplo de um Programa em C Os códigos dos exemplos foram feitos e compilados na ferramenta codeblocks. Link do manual de instalação: https://wiki.codeblocks.org/index.php/Installing_a_supported_compiler Link para baixar: https://www.codeblocks.org/downloads/ Exemplo: Neste exemplo, temos um algoritmo que imprime uma mensagem para o usuário, pedindo para digitar seu primeiro nome, em seguida imprime o nome digitado. O uso da ferramenta será mostrado e explicado na aula prática de laboratório. Bloco III Código de Barra Invertida A linguagem C possui algumas constantes para facilitar a exibição de resultados na tela, a manipulação de cadeias ou a impressão. São caracteres que podem ser usados como quaisquer outros. Ao lado temos uma tabela com os códigos de barra invertida. Operadores Matemáticos Em C temos diversos operadores matemáticos. A tabela acima mostra os operadores com exemplos. Sintaxes Específicas A linguagem C tem, ainda, algumas sintaxes específicas, por exemplo: Atribuição múltipla y = x = 5; Operadores de incremento e decremento: são operadores não convencionais que atuam sobre a própria variável, neste exemplo, aumentando ou diminuindo uma unidade. int a = 5, x = 0; x = ++a; // incrementa a em uma unidade e depois atribui o valor a x, então x = 6; a--; // decrementa a em uma unidade, então a = 4; Operadores de Atribuição em C Os operadores de atribuição resultam na substituição do conteúdo do termo à esquerda da expressão. Com exceção da igualdade, todos os operadores resultam em formas similares de execução. Operadores Relacionais em C Os operadores relacionais do C realizam comparações entre variáveis. Os operadores relacionais retornam verdadeiro (1) ou falso (0). Operadores Lógicos em C Para fazer operações com valores lógicos (verdadeiro e falso), temos os operadores lógicos: Usando os operadores relacionais e lógicos podemos realizar uma grande gama de testes. Exemplo de um Programa em C Exemplo: Neste exemplo, temos um algoritmo que imprime uma mensagem para o usuário, pedindo para digitar seu primeiro nome, sua idade e seu peso, em seguida imprime estes dados um em cada linha. Exemplo: Bloco IV Comando de Saída: Especificadores de Formato Saída: A função que executa a visualização de informações pela tela é o printf(), seguindo um determinado formato. A sintaxe da função é: printf(“ formato ” , lista de variáveis/expressões); A função é formada por duas partes. A primeira parte determina o formato da saída. Para cada valor contido em uma variável, deve existir um especificador do formato de saída. As variáveis ficam listadas na segunda parte dos parâmetros da função. Os especificadores de formato determinam o tipo e a precisão dos valores que queremos mostrar na tela. Esses especificadores são precedidos pelo caractere %. Exemplo: Impressão do valor de um número inteiro e um número real: Especificador e suas características: printf(“ formato ” , lista de variáveis/expressões)Comando de Saída – Outro Exemplo Além dos especificadores, podemos incluir textos no formato, que são apresentados na saída junto aos dados. Essa saída é formada pela cadeia de caracteres do formato, em que os especificadores são substituídos pelos valores contidos nas variáveis correspondentes. No formato é possível, ainda, determinar a precisão e o tamanho dos campos em que os valores são mostrados Para Entender Nos inteiros, o número que fica entre o sinal de % e o “d” determina a quantidade de dígitos que o valor ocupará. Na formatação de ponto flutuante, o número antes do ponto determina o total de dígitos, e o número depois da vírgula, a quantidade de dígitos após a vírgula. Note que a vírgula ou ponto contam como um dígito. Comando de Entrada: Especificadores de Formato Entrada: Os valores digitados no teclado são capturados pela função scanf(), que também pertence à biblioteca stdio.h. Assim como o printf, tem duas partes, uma que determina o formato de leitura e a segunda variável, que irá receber o valor digitado. A sintaxe da função é: scanf(“ formato ”, &variável); Os especificadores de tipos do formato são similares aos utilizados na função printf. A função scanf utiliza especificadores diferentes para o tipo float e o tipo double. Especificador e suas características: scanf(“ formato ”, &variável) Exemplo de Aplicação Exemplo: Calcula e imprime a média entre duas variáveis do tipo double, com valores predefinidos. Exemplo: Solicita ao usuário para digitar o valor de duas notas e armazena os valores em duas variáveis do tipo double, depois calcula e imprime a média das notas. P&R 1) Qual das seguintes afirmações é verdadeira sobre a linguagem de programação C? a) O bloco da função main() é iniciado com ( e finalizado com ), indicando o início e o fim do processamento do programa. b) A linguagem C trata letras maiúsculas e minúsculas como sendo idênticas ao identificar comandos e variáveis. c) Comentários em C são iniciados com */ e terminam com */. d) O comando #include inclui uma biblioteca que contém funções de entrada e saída, permitindo o uso de printf(), entre outras. e) Não permite atribuir valores no momento da declaração da variável ou várias variáveis do mesmo tipo e na mesma linha. 2) Analise o código abaixo escrito em C. Marque a alternativa que apresenta o valor de saída na impressão deste programa. a) 002 b) 011 c) 012 d) 020 e) 021 Solução: Na primeira impressão, a variável a = 0 e a variável b = 1. Em seguida, b recebe o valor que está na variável c, então b = 2. Depois, c recebe b, então c = 2. Novamente, b recebe c, então b = 2 3) Analise o código abaixo escrito em C, no qual temos operações matemáticas básicas de incremento e decremento entre as variáveis. Marque a alternativa que apresenta o valor de saída na impressão deste programa. a) a=3, b=15, c=5, d=11 b) a=18, b=17, c=18, d=10 c) a=19, b=18, c=19, d=9 d) a=20, b=17, c=17, d=8 e) a=30, b=15, c=5, d=7 Solução: Analisando o código, inicialmente vemos que a = a + b, então a = 18. Depois, b = a++, então b = 18 e a é incrementado em 1, então a = 19. Depois, c = a, então c = 19. Por fim, d é decrementado em 1, então d = 9. Portanto, temos como saída: a = 19, b = 18, c = 19, d = 9. 4) Podemos utilizar a função scanf() para entrar com dados na fronteira do programa. Ou seja, essa função permite que os dados digitados pelo usuário do programa sejam armazenados nas variáveis do programa. Na função scanf(), no mínimo devem ser informados dois argumentos, o primeiro é responsável pelo formato dos dados de entrada. Marque a alternativa que apresenta corretamente o uso da função para receber um valor inteiro e armazenar na variável int mat. a) scanf("%d", &mat); b) scan("%d", &mat); c) scanf("d", &mat); d) scanf("%d", mat); e) Scanf("%d", &Mat); Solução: Alternativa b, falta a letra f em scanf Alternativa c, falta o % antes do %d Alternativa d, falta o & antes de &mat Alternativa e, scanf deve ser sempre com letra minúscula. A variável mat, também não pode ser iniciada com M maiúsculo, pois foi declarada com m minúsculo. Portanto, a alternativa a está correta. image42.png image37.png image33.png image43.png image3f.png image38.png image3c.png image3d.png image2e.png image35.png image46.png image40.png image36.png image2f.png image41.png image47.png image3a.png image44.png image30.png image31.png image3e.png image3b.png image32.png image45.png image34.png image39.png