Algoritmos Professor Filipe Jabour
98 pág.

Algoritmos Professor Filipe Jabour


DisciplinaEngenharia Mecatrônica89 materiais1.261 seguidores
Pré-visualização17 páginas
. . . . . . . . . . . . . . . . . . . . 39
6.2 Varia´vel como \u131´ndice do vetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.3 Um exemplo simples de string e gets() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.4 A func¸a\u2dco strlen() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.5 A func¸a\u2dco strcpy() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.6 A func¸a\u2dco strcat() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.7 A func¸a\u2dco strcmp() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.8 Um exemplo simples com matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.9 Le\u2c6 e exibe um texto com va´rias linhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.1 Programa com a func¸a\u2dco calculaMedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2 Passando uma matriz como argumento da func¸a\u2dco . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
9.1 Resposta do exerc´\u131cio 1.6.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
9.2 Resposta do exerc´\u131cio 2.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
ix
9.3 Resposta do exerc´\u131cio 2.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.4 Resposta do exerc´\u131cio 2.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.5 Resposta do exerc´\u131cio 2.3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
9.6 Resposta do exerc´\u131cio 2.3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.7 Resposta do exerc´\u131cio 2.3.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
9.8 Resposta do exerc´\u131cio 2.3.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
9.9 Resposta do exerc´\u131cio 3.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9.10 Resposta do exerc´\u131cio 3.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
9.11 Resposta do exerc´\u131cio 3.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
9.12 Resposta do exerc´\u131cio 4.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.13 Resposta do exerc´\u131cio 4.3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
9.14 Resposta do exerc´\u131cio 4.3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.15 Resposta do exerc´\u131cio 4.3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
9.16 Resposta do exerc´\u131cio 4.3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
9.17 Resposta do exerc´\u131cio 4.3.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.18 Resposta do exerc´\u131cio 4.3.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.19 Resposta do exerc´\u131cio 4.3.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.20 Resposta do exerc´\u131cio 5.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9.21 Resposta do exerc´\u131cio 6.4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.22 Resposta do exerc´\u131cio 7.3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.23 Resposta do exerc´\u131cio 7.3.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.24 Resposta do exerc´\u131cio 7.3.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
11.1 if-else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
11.2 switch-case com char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
11.3 switch-case com int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
11.4 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
x
11.5 for dentro de for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
xi
Lista de Figuras
1.1 O ciclo de desenvolvimento, compilac¸a\u2dco e execuc¸a\u2dco de um programa em C . . . . . . . . . . . . . 2
xii
Lista de Tabelas
2.1 Operadores relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Operadores lo´gicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 Gravidades relativas em outros planetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.1 Sa´\u131da do programa 4.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.1 Prec¸o de passagens ae´reas por regia\u2dco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
xiii
Cap´\u131tulo 1
Conceitos Iniciais
1.1 Refere\u2c6ncias e bibliografia
Esta apostila usou como refere\u2c6ncia e bibliografia as seguintes obras, s´\u131tios e materiais: C - Completo e
Total [3], Introduc¸a\u2dco a` programac¸a\u2dco - 500 algoritmos resolvidos [1], Turbo C: guia do usua´rio [2].
1.2 Algoritmos e a linguagem C
Algoritmo e´ uma seque\u2c6ncia finita de passos com o objetivo de solucionar um problema.
Dado um problema ou tarefa qualquer, voce\u2c6 pode propor uma lista de ac¸o\u2dces sequencias que, se executadas,
resolvera\u2dco o problema ou executara\u2dco a tarefa.
Se estivermos tratando de computac¸a\u2dco, estes passos devera\u2dco ser apropriados para a execuc¸a\u2dco em um com-
putador.
Para ser executado em um computador, seu algoritmo precisa ser traduzido (ou reescrito) em uma linguagem
de programac¸a\u2dco. Nesta apostila utilizaremos a linguagem C.
Uma vez escrito o programa em C, o mesmo precisa se traduzido para a linguagem do computador para ser
executado. Esta traduc¸a\u2dco se chama compilac¸a\u2dco (Figura 1.1).
A cada modificac¸a\u2dco do programa inicial, chamado de programa fonte ou co´digo fonte, a compilac¸a\u2dco deve ser
refeita para gerar um novo programa executa´vel que reflita as modificac¸o\u2dces feitas.
Vejamos um exemplo no algoritmo 1.1
Algoritmo/Programa 1.1: Algoritmo para somar 2 nu´meros
1.3 Varia´vel 2
Editor de textos OU Ambiente de desenvolvimento Integrado (IDE)
\u21d3
Programa em C: MeuPrograma.c
\u21d3
Compilador: gcc MeuPrograma.c , por exemplo
\u21d3
Programa executa´vel: MeuPrograma.o ou MeuPrograma.exe , por exemplo
\u21d3
O programa e´ chamado (executado)
Figura 1.1: O ciclo de desenvolvimento, compilac¸a\u2dco e execuc¸a\u2dco de um programa em C
1 i n \u131´ c i o
2 A = 10 ;
3 B = 23 ;
4 C = A + B;
5 Mostrar o va l o r de C;
6 f im
A e B sa\u2dco chamadas varia´veis, como na matema´tica, e recebem valores nume´ricos (10 e 23, respectivamente).
A e B sa\u2dco somadas e o resultado e´ gravado (armazenado) em outra varia´vel chamada C. Por fim, o resultado
da soma e´ mostrado ou exibido para uma pessoa (ou usua´rio) qualquer.
Em geral, um programa de computador tem uma entrada, ou dados de entrada, executa uma computac¸a\u2dco
(\u201cfaz alguma coisa com estes dados\u201d) e exibe uma sa´\u131da.
No exemplo do algoritmo 1.1, podemos adaptar os comandos A = 10; e B = 23; como a entrada de dados.
C = A + B; e´ a computac¸a\u2dco em si (executar uma soma, no caso). Por fim, o enunciado Mostrar o valor de
C; e´ a sa´\u131da do programa (mostrar ao usua´rio o valor da soma, no caso, 33).
1.3 Varia´vel
Computadores executam operac¸o\u2dces matema´ticas e comparac¸o\u2dces de valores no processador (CPU). Os valores
usados nas operac¸o\u2dces matema´ticas e nas comparac¸o\u2dces ficam armazenados (gravados) na memo´ria principal. Para
saber o que esta´ aonde,