Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Apostila Algoritmos e programação para Engenharia, Esquemas de Programação em C

Apostila sobre C++ e outras linguagens

Tipologia: Esquemas

2020

Compartilhado em 17/08/2020

eliezer-pereira-da-silva
eliezer-pereira-da-silva 🇧🇷

1 documento

1 / 68

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
0
Apostila
Algoritmos e Programação em
Linguagem C para Engenharia
Eduardo Ono
12/1 1/2014
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44

Pré-visualização parcial do texto

Baixe Apostila Algoritmos e programação para Engenharia e outras Esquemas em PDF para Programação em C, somente na Docsity!

0

Apostila

Algoritmos e Programação em

Linguagem C para Engenharia

Eduardo Ono

“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

  1. Qual a diferença entre declarar uma variável e definir (ou inicializar) uma variável?

#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

  • x Inverte o sinal de x.

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