




























































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Apostila sobre C++ e outras linguagens
Tipologia: Esquemas
1 / 68
Esta página não é visível na pré-visualização
Não perca as partes importantes!
0
“Eu sou responsável pelo que eu falo,
não pelo que você entende...”
v
Listagem 11.2. Obtenção das raízes de uma equação do segundo grau pela fórmula de Bhaskara. ......................................................................................................................................................................... 33
Listagem 11.3. Programa que soma números fornecidos pelo usuário em tempo de execução. ......................................................................................................................................................................... 34
Listagem 11.4. Programa que verifica se um número é primo ou não. .......................................... 35
Listagem 11.5. Soma de números inteiros consecutivos. ...................................................................... 36
Listagem 12.1. Programa que verifica se um número é elemento de um vetor. ........................ 40
Listagem 17.1. Leitura de potenciômetro. ..................................................................................................... 52
Listagem 17.2. Controle da luminosidade de LED com potenciômetro. ........................................ 53
Copyright © Eduardo Ono (^1)
1 Introdução
A presente apostila foi concebida a partir de notas de aulas da disciplina Algoritmos e Linguagem de Programação, ministrada no Unisal – Campus Campinas / São José. O objetivo principal desse material consiste em fornecer ao aluno de um curso introdutório de programação em linguagem C um texto conciso que aborde os três principais aspectos necessários para a programação de computadores: (i) Algoritmos e lógica de programação, (ii) Linguagem de programação e (iii) Técnicas de programação.
Copyright © Eduardo Ono. (^3)
Tabela 1. Tabela-verdade para os Teoremas de De Morgan.
𝒑 𝒒 ¬𝒑 ¬𝒒 𝒑 ∧ 𝒒 𝒑 ∨ 𝒒 ¬(𝒑 ∧ 𝒒) ¬(𝒑 ∨ 𝒒) ¬𝒑 ∧ ¬𝒒 ¬𝒑 ∧ ¬𝒒 V V F F V V F F F F V F F V F V V F F F F V V F F V V F F F F F V V F F V V V V
Exemplo. Seja x um número real tal que 1 ≤ 𝑥 ≤ 2. Essa expressão deve ser escrita como
𝑥 ≥ 1 e 𝑥 ≤ 2.
Desse modo, a negação é:
𝑥 < 1 ou 𝑥 > 2.
Copyright © Eduardo Ono. (^4)
3 Algoritmos
Definição. Uma instrução é um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em computação, instrução é a informação que indica a um computador uma ação elementar a ser executada.
Definição. Um algoritmo é uma sequência finita de instruções que quando executada deverá atingir o seu objetivo, ou seja, a resolução de um problema ou execução de uma tarefa.
Copyright © Eduardo Ono. (^6)
5 A Linguagem de Programação C
5.1 Introdução
A linguagem de programação C foi criada na década de 70 por Dennis Ritchie (9/Set/1941 – 12/Out/2011). Tornou-se em pouco tempo uma das linguagens mais utilizadas na programação de computadores, bem como uma referência para muitas das linguagens de programação atuais.
5.1.1 Estrutura de um Programa em C
Exemplo. Primeiro programa em linguagem C: “Olá Mundo!”.
Veremos adiante que acentos e outros símbolos devem ser tratados como caracteres especiais.
5.2 Instruções e Blocos de Instruções
Definição. Em computação, uma instrução é uma informação que indica a um computador uma ação elementar a ser executada.
Na linguagem C, o ponto-e-vírgula é o caractere que indica o fim de uma instrução.
As chaves “{“ e “}” são utilizadas para agrupar um grupo de instruções em um bloco, equivalente a uma única instrução. Em um bloco de instruções, não há um ponto-e- vírgula após a chave que termina o bloco.
Listagem 5. 1. Primeiro programa em C: “Olá Mundo!”.
#include <stdio.h>
int main() { printf("Olá Mundo!"); return 0; }
Copyright © Eduardo Ono. (^7)
5.3 Palavras Reservadas
As palavras reservadas fazem parte da linguagem e não podem ser redefinidas em nomes de variáveis, funções, etc.
Tabela 5.1. Palavras reservadas da linguagem C.
auto do for short union break goto signed unsigned case double if sizeof void char else int static volatile const enum long struct while continue extern register switch default float return typedef
A linguagem C é “ case sensitive ”, ou seja, diferencia letras maiúsculas e minúsculas. As palavras reservadas são apenas reconhecidas quando escritas em minúsculo.
Exemplo:
int Int; // aceito porém não recomendado
5.4 Comentários
Definição. Um comentário é uma informação que não é considerada pelo compilador.
Há dois tipos de comentários na linguagem C: (i) bloco de comentários e (ii) comentário de final de linha.
Bloco de comentários: /* ... */
Comentário de final de linha: // ...
Copyright © Eduardo Ono. (^9)
uma informação na memória do computador. Em termos práticos, é um espaço reservado na memória cujo tamanho é determinado pelo tipo de dado da variável e acessível através do nome da variável.
O conceito de variável foi criado para facilitar a construção de um programa, permitindo acessar as informações na memória do computador através de um nome, ao invés do endereço de uma célula de memória. Assim, uma variável deve possuir um nome único para diferenciá-la das demais variáveis.
6.2.1 Nomes de variáveis
O nome de uma variável deve ser composto por letras ({ A , ..., Z , a , ..., z }) e algarismos arábicos ({0, ..., 9}). O caractere sublinhado ‘_’ ( underline em inglês) é considerado uma letra. O primeiro caractere deve ser uma letra. Porém, não é recomendado iniciar o nome de uma variável com o caractere sublinhado, pois muitas rotinas de bibliotecas iniciam nomes de variáveis dessa forma.
A linguagem C é “ Case Sensitive ”, ou seja, diferencia maiúsculas de minúsculas. Nomes de variáveis também obedecem a esse comportamento. Convém salientar que nem todas as linguagens de programação, por exemplo, Pascal, são “ Case Sensitive ”.
Pelo menos os 31 primeiros caracteres de um nome são significativos.
6.2.2 Declaração de variáveis
Definição. Declarar uma variável é informar o tipo e o nome da variável.
Em um programa, todas as variáveis devem ser declaradas antes de serem utilizadas.
6.2.3 Definição (ou inicialização) de variáveis
Definição. Definir (ou inicializar) uma variável é atribuir um valor (dado) à variável.
A atribuição de um valor a uma variável é feita através do operador ‘=’.
6.2.4 Declaração e definição de variáveis
A linguagem C permite a declaração e definição de uma variável em uma única instrução.
Copyright © Eduardo Ono. (^10)
Exemplo:
int idade = 18;
Mais de uma variável de um mesmo tipo podem ser inicializadas em uma única instrução, separadas por vírgula.
int idade = 18; float altura = 1.79, peso = 84.1; // altura em m e peso em kg
6.3 “Armadilhas” da Linguagem C
Vimos que o tipo char possui uma faixa de valores que vai de – 128 a 127.
Exemplo. Atribuição de valores para variáveis do tipo char.
Nesse programa, a variável valor foi declarada, porém, não foi definida (inicializada). Vejamos quais as saídas para diferentes atribuições a variável valor:
Valor (tipo char) Saída da instrução printf("%d", valor);
- 128 - 128 127 127 - 129 127 128 - 129 255 - 1
6.4 Exercícios
#include <stdio.h>
int main() { char valor; printf("%d", valor); }
Copyright © Eduardo Ono. (^12)
7 Operadores
7.1 Operador de Atribuição
O operador de atribuição “=” é utilizado para atribuir um valor a uma variável.
7.2 Operadores Aritméticos
Operador Operação Expressão Descrição + Adição (Soma) x + y Soma x com y.
- Subtração x – y Subtrai y de x. ***** Multiplicação x * y Multiplica x por y. / Divisão x / y Divide x por y. % Módulo x % y Resto da divisão inteira de x por y. ++ Incremento x++, ++x Soma 1 a x. -- Decremento y--, --y Subtrai 1 de x. - (^) Inversão de sinal
O operador % (módulo) é equivalente a operação:
𝑅𝑒𝑠𝑡𝑜 = 𝐷𝑖𝑣𝑖𝑑𝑒𝑛𝑑𝑜 − 𝐷𝑖𝑣𝑖𝑠𝑜𝑟 ∗ 𝑄𝑢𝑜𝑐𝑖𝑒𝑛𝑡𝑒
Dividendo Divisor Resto Quociente ↗ ↖ Resto = Dividendo % Divisor Quociente = Dividendo / Divisor
Os operadores de incremento e decremento só podem ser aplicados a variáveis.
Copyright © Eduardo Ono. (^13)
7.3 Operadores Lógicos (Booleanos)
Operador Operação Expressão Descrição && E (AND) x && y x E y || OU (OR) x || y x OU y ! Negação (NOT) !x Não x.
A linguagem C não possui um tipo booleano (true ou false). Porém, considera o zero como false e qualquer valor diferente de zero como true.
Exemplos:
1 && 1 // resulta em 1 1 && 0 // resulta em 0 0 && 0 // resulta em 0
1 || 1 // resulta em 1 1 || 0 // resulta em 1 0 || 0 // resulta em 0
7.4 Operadores Relacionais
**Operador Operação Expressão Descrição
** Maior que x > y Verifica se x é maior que y. < Menor que x < y Verifica se x é menor que y. >= Maior ou igual x >= y Verifica se x é maior ou igual a y. <= Menor ou igual x <= y Verifica se x é menor ou igual a y. == Igual x == y Verifica se x é igual a y. != Diferente x != y Verifica se x é diferente de y.
Exemplo. Os operadores relacionais realizam comparações:
x = 1 < 2; // x recebe 1 x = 2 < 1; // x recebe 0 x = ‘A’ < ‘B’; // x recebe 1, conforme a tabela ASCII x = ‘A’ < ‘a’; // x recebe 1, conforme a tabela ASCII