1.1 o que é um algoritmo... 6

Documentos relacionados
algoritmos e programação

SUBGERÊNCIA DE GESTÃO EDUCACIONAL PLANO DE CURSO

Algoritmos Fundamento e Prática

PLANO DE UNIDADE DIDÁTICA- PUD

ALGORITMOS E ESTRUTURAS DE DADOS I PROF. EDSON IFARRAGUIRRE MORENO

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Modelo de plano analitico

Programação em C e C++ com Lógica. Subtítulo

Plano de Ensino. Ementa

Aula prático/expositiva. Resolução de exercícios propostos e participação em sala de aula. 2h 08/05

Conceitos Básicos de Programação

Fundamentos de programação

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

Estrutura do programa

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

(Extraído do Livro: Fundamentos da Programação. Ascencio, Ana/Campos, Edilene)

Algoritmos e Estruturas de Dados

(Extraído do Livro: Fundamentos da Programação. Ascencio, Ana/Campos, Edilene)

Rodrigo de Barros Paes

PLANO DE DISCIPLINA. Análise e Desenvolvimento de Sistemas. Introdução a Algoritmos e Programação EMENTA

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

Noções de algoritmos - Aula 1

DISCIPLINA: Programação de Computadores I

FUNDAÇÃO UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO

CONCEITOS DE ALGORITMOS

Programa Analítico de Disciplina INF101 Introdução à Programação II

Eng. Alimentos PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO CÓDIGO DISCIPLINA PRÉ-REQUISITOS

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Algoritmos Estrutura Condicional

PLANO DE ENSINO. Súmula:

2. Algoritmos. Prof. Renato Tinós. Local: Depto. de Computação e Matemática (FFCLRP/USP) Introdução à Computação I IBM1006

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Noções de algoritmos - Aula 1

Planificação Anual da disciplina de Programação e Sistemas de Informação 10º 1PI

1 Elementos Básicos da Linguagem C Parte 1: Revisão da Linguagem C

CONTEÚDOS PROGRAMÁTICOS

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CATARINENSE - CAMPUS LUZERNA Rua São Roque, 41 - Luzerna/SC CEP Fone: (49)

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Algoritmos e Programação - Engenharia da Computação -

AULA 07. HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol.

Lógica de Programação Completo

Programação Orientada a Objetos

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

ALGORITMOS 3ª Aula. 3. Introdução Tipos de dados, variáveis e operadores Tipos de dados

Introdução a Computação

PLANIFICAÇÃO ANUAL. 1. Introdução à Programação e Algoritmia. Tempos letivos previstos (45) Período escolar

Programação de Computadores II

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

ALGORITMOS E ESTRUTURA DE DADOS

Aula 10: Introdução a Vetores e Matrizes

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Algoritmo e Programação Matemática

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

Programação Aplicada à. Engenharia de Alimentos

O que é um jogo digital?

Programação Estruturada Orientada a Objetos

Algoritmos - 6. Alexandre Diehl. Departamento de Física - UFPel

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Disciplina: Introdução a Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer. Índice: Aula1 - Introdução Programa Algoritmo

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

Programação I A Linguagem C. Prof. Carlos Alberto

Algoritmos e Programação

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Curitiba PLANO DE ENSINO

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

Capítulo 5. Nomes, Vinculações e Escopos

FCA - Editora de Informática xv

Linguagens de Programação Conceitos e Técnicas. Amarrações

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Programação Estruturada Aula Plano de Disciplina

Transcrição:

sumário introdução 1 1 fundamentos 5 1.1 o que é um algoritmo... 6 1.1.1 algoritmos executados por um computador...7 1.1.2 comandos básicos executados por um computador...11 1.1.3 da necessidade do desenvolvimento de algoritmos para solucionar problemas computacionais...11 1.1.4 formas de expressar um algoritmo...12 1.1.5 eficácia e eficiência de algoritmos...13 1.2 etapas de construção de um programa... 15 1.3 paradigmas de programação... 17 1.4 programação estruturada... 19 1.5 elementos de representação interna de dados... 21 1.6 dicas... 22 1.7 testes... 22 1.8 exercícios sugeridos... 23 1.9 termos-chave... 23

xvi Sumário 2 unidades léxicas, variáveis, constantes e expressões 25 2.1 componentes das linguagens de programação... 26 2.1.1 literais...26 2.1.2 identificadores...27 2.1.3 palavras reservadas...28 2.1.4 símbolos especiais...28 2.1.5 comentários...28 2.2 declarações... 28 2.2.1 declaração de variáveis...29 2.2.2 declaração de tipos de dados...30 2.2.3 declaração de constantes...31 2.3 expressões... 32 2.3.1 expressões aritméticas...32 2.3.2 expressões lógicas...34 2.3.3 expressões de strings...36 2.4 em Pascal... 37 2.4.1 literais...37 2.4.2 identificadores...38 2.4.3 palavras reservadas...38 2.4.4 símbolos especiais...38 2.4.5 comentários...38 2.4.6 tipos de variáveis...39 2.4.7 declarações...40 2.4.8 expressões aritméticas, lógicas e de strings...43 2.5 em C... 45 2.5.1 literais...45 2.5.2 identificadores...46 2.5.3 palavras reservadas...46 2.5.4 símbolos especiais...46 2.5.5 comentários...46 2.5.6 tipos de variáveis...47

Sumário xvii 2.5.7 declarações...49 2.5.8 expressões...50 2.6 dicas... 53 2.7 exercícios sugeridos... 54 2.8 termos-chave... 55 3 algoritmos sequenciais 57 3.1 esquema básico dos algoritmos sequenciais... 58 3.2 comandos de entrada e de saída... 59 3.2.1 comando de entrada de dados...59 3.2.2 comando de saída de dados...59 3.2.3 formatação de entrada e saída...60 3.3 comando de atribuição... 60 3.3.1 atribuição numérica...61 3.3.2 atribuição lógica...62 3.3.3 atribuição de caracteres...62 3.4 fluxograma de programas sequenciais... 63 3.5 estrutura de um algoritmo... 64 3.6 exercícios de fixação... 66 3.7 em Pascal... 69 3.7.1 entrada de dados...69 3.7.2 saída de dados...70 3.7.3 comando de atribuição...73 3.7.4 estrutura de um programa em Pascal...74 3.8 em C... 76 3.8.1 entrada e saída de dados...76 3.8.2 atribuição...78 3.8.3 estrutura de um programa em C...80 3.9 dicas... 83

xviii Sumário 3.10 testes... 84 3.11 exercícios sugeridos... 85 3.12 termos-chave... 87 4 estruturas condicionais e de seleção 89 4.1 comando de seleção simples... 90 4.2 comando composto... 92 4.3 comando de seleção dupla... 94 4.4 comandos de seleção aninhados... 95 4.5 comando de seleção múltipla... 98 4.6 exercícios de fixação... 100 4.7 em Pascal... 105 4.7.1 comando composto...105 4.7.2 comando de seleção simples...106 4.7.3 comando de seleção dupla...107 4.7.4 comando de seleção múltipla...108 4.8 em C... 109 4.8.1 comando composto...109 4.8.2 comando de seleção simples...110 4.8.3 comando de seleção dupla...111 4.8.4 comando de seleção múltipla...112 4.8.5 bloco: declaração de variáveis locais...116 4.9 dicas... 117 4.10 testes... 118 4.11 exercícios sugeridos... 119 4.12 termos-chave... 123

Sumário xix 5 estruturas de repetição 125 5.1 conceito de contador... 126 5.2 comando de repetição por contagem para/faça... 127 5.2.1 aninhamento de comandos para/faça...133 5.3 comando de repetição condicional enquanto/faça por avaliação prévia de condição... 134 5.3.1 sinalização de final de dados...136 5.3.2 contagem de repetições...138 5.3.3 comandos de repetição aninhados...138 5.4 comando de repetição condicional repita/até por avaliação posterior de condição... 139 5.5 garantia da consistência de dados através de comandos de repetição... 141 5.6 selecionando o comando de repetição mais adequado... 142 5.7 exercícios de fixação... 142 5.8 em Pascal... 145 5.8.1 comando de repetição por contagem for...145 5.8.2 comando de repetição condicional while/do...147 5.8.3 comando de repetição condicional repeat/until...148 5.9 em C... 149 5.9.1 comando de repetição for...149 5.9.2 comando de repetição condicional while por avaliação anterior de condição...152 5.9.3 comando de repetição condicional do/while por avaliação posterior de condição...153 5.9.4 selecionando o comando de repetição mais adequado...154 5.10 dicas... 154 5.11 testes... 156 5.12 exercícios sugeridos... 156 5.13 termos-chave... 161

xx Sumário 6 variáveis estruturadas: arranjos unidimensionais 163 6.1 arranjos... 164 6.2 vetores... 165 6.2.1 declaração de um vetor...165 6.2.2 acesso a um elemento de um vetor...166 6.2.3 inicialização de vetores...168 6.3 exemplos de uso de vetores... 168 6.3.1 operações sobre um só vetor...168 6.3.2 operações sobre mais de um vetor...170 6.3.3 pesquisa e classificação de vetores...172 6.4 exercícios de fixação... 172 6.5 em Pascal... 183 6.5.1 declaração de um vetor...183 6.5.2 acesso aos elementos de um vetor...184 6.5.3 inicialização de vetor na declaração...185 6.5.4 atribuição em bloco...185 6.5.5 string tratada como vetor...185 6.6 em C... 186 6.6.1 declaração de um vetor...186 6.6.2 acesso aos elementos de um vetor...186 6.6.3 inicialização na declaração...187 6.6.4 cadeias de caracteres ou strings...187 6.7 dicas... 188 6.8 testes... 188 6.9 exercícios sugeridos... 189 6.10 termos-chave... 193

Sumário xxi 7 variáveis estruturadas: arranjos multidimensionais 195 7.1 matrizes... 196 7.2 matrizes bidimensionais... 197 7.2.1 declaração de uma matriz bidimensional...197 7.2.2 acesso a um elemento de uma matriz...198 7.2.3 inicialização de matrizes...198 7.2.4 exemplos de uso de matrizes...199 7.3 matrizes com mais de duas dimensões... 200 7.4 exercícios de fixação... 202 7.5 em Pascal... 209 7.5.1 declaração de uma matriz...209 7.5.2 acesso aos elementos de uma matriz...210 7.5.3 inicialização de matriz na declaração...210 7.5.4 atribuição em bloco...211 7.6 em C... 211 7.6.1 declaração de uma matriz...211 7.6.2 acesso aos elementos de uma matriz...212 7.7 dicas... 212 7.8 testes... 213 7.9 exercícios sugeridos... 214 7.10 termos-chave... 219 8 tipo definido por enumeração 221 8.1 enumerações... 222 8.1.1 declaração de tipo enumeração...222 8.1.2 variáveis do tipo enumeração...223 8.1.3 tipo enumeração utilizado como índice de vetores ou matrizes...224 8.2 exercícios de fixação... 225 8.3 em Pascal... 228

xxii Sumário 8.4 em C... 230 8.5 dicas... 231 8.6 testes... 231 8.7 exercícios sugeridos... 232 8.8 termos-chave... 233 9 subprogramas 235 9.1 conceito de subprogramação... 237 9.2 implementação de chamadas a subprogramas... 238 9.3 parâmetros... 240 9.3.1 parâmetros formais e reais...240 9.3.2 parâmetros de entrada e de saída...241 9.3.3 parâmetros por valor ou por referência...241 9.4 declarações locais e globais... 242 9.4.1 escopo de identificadores...243 9.5 tipos de subprogramas... 246 9.5.1 procedimentos...246 9.5.2 funções...247 9.6 refinamentos sucessivos e programação modular... 248 9.7 exercícios de fixação... 250 9.8 em Pascal... 255 9.8.1 procedimentos em Pascal...255 9.8.2 funções em Pascal...256 9.9 em C... 258 9.10 dicas... 262 9.11 testes... 262 9.12 exercícios sugeridos... 263 9.13 termos-chave... 269

Sumário xxiii 10 manipulação de strings 271 10.1 formas de manipular strings... 272 10.2 tamanho de variáveis do tipo string... 273 10.3 exercícios de fixação... 274 10.4 em Pascal... 277 10.4.1 declaração de strings...277 10.4.2 comprimento efetivo de strings...278 10.4.3 procedimentos para alteração de strings...279 10.4.4 comparação entre strings...281 10.4.5 procedimentos para conversão de tipos...281 10.4.6 mais funções de manipulação de strings...282 10.5 em C... 284 10.5.1 declaração de strings...284 10.5.2 tamanho de strings...284 10.5.3 declaração com inicialização de strings...284 10.5.4 leitura de strings função scanf...285 10.5.5 escrita de strings...285 10.5.6 comparação entre strings e outras operações com uso da biblioteca string.h...286 10.6 dicas... 289 10.7 testes... 289 10.8 exercícios sugeridos... 289 10.9 termos-chave... 291 11 registros 293 11.1 o que é um registro... 294 11.2 declaração de registro... 295 11.3 referência a elementos de registros... 298 11.4 exercícios de fixação... 298

xxiv Sumário 11.5 em Pascal... 301 11.5.1 declaração de um registro...301 11.5.2 referência a campo de registro...301 11.5.3 comando with...303 11.5.4 atribuição de registros inteiros...304 11.6 em C... 305 11.6.1 declaração de uma estrutura...305 11.6.2 referência aos campos de uma estrutura...306 11.7 dicas... 307 11.8 testes... 307 11.9 exercícios sugeridos... 307 11.10 termos-chave... 313 12 conjuntos 315 12.1 tipo de dado conjunto... 316 12.2 declaração de conjuntos... 316 12.3 construção de conjuntos... 317 12.4 operações sobre conjuntos... 317 12.4.1 operações que resultam em conjuntos...318 12.4.2 operações que resultam em valores lógicos...318 12.5 inclusão de um elemento em um conjunto... 320 12.6 entrada e saída de variáveis do tipo conjunto... 321 12.7 exercícios de fixação... 322 12.8 em Pascal... 325 12.8.1 declaração de conjuntos...325 12.8.2 construção de conjuntos...325 12.8.3 operações sobre conjuntos...326 12.8.4 inclusão de um elemento em um conjunto...328 12.8.5 entrada e saída de variáveis do tipo conjunto...328 12.9 em C... 329

Sumário xxv 12.10 dicas... 329 12.11 testes... 329 12.12 exercícios sugeridos... 330 12.13 termos-chave... 333 13 arquivos 335 13.1 características de arquivos... 336 13.1.1 tipos de arquivos...337 13.1.2 controle para acesso...337 13.1.3 formas de acesso...338 13.2 etapas para o uso de arquivos... 338 13.2.1 declaração de arquivos...338 13.2.2 associação de nome físico a arquivo...339 13.2.3 abertura de arquivo...339 13.2.4 fechamento de arquivos...340 13.2.5 apagar e renomear arquivos...340 13.2.6 leitura e escrita em arquivos...341 13.2.7 verificação de erros de entrada e saída...342 13.3 arquivos de texto... 342 13.3.1 leitura e escrita em arquivos de texto...342 13.4 arquivos binários... 345 13.4.1 leitura e escrita em arquivos binários...346 13.4.2 arquivos binários e acesso sequencial...346 13.4.3 arquivos binários e acesso direto (ou randômico)...348 13.5 arquivos de texto versus arquivos binários... 354 13.6 exercícios de fixação... 354 13.7 em Pascal... 360 13.7.1 características de arquivos em Pascal...360 13.7.2 etapas para uso de arquivos em Pascal...361 13.7.3 arquivos de texto...363 13.7.4 arquivos binários...366

xxvi Sumário 13.8 em C... 368 13.8.1 características de arquivos em C...368 13.8.2 etapas para uso de arquivos em C...371 13.8.3 arquivos de texto...374 13.8.4 arquivos binários...380 13.9 dicas... 385 13.10 testes... 385 13.11 exercícios sugeridos... 386 13.12 termos-chave... 393 14 ponteiros e alocação dinâmica de memória 395 14.1 alocação dinâmica de memória... 396 14.2 conceito de ponteiro... 397 14.3 declaração de um ponteiro... 398 14.4 alocação e liberação de memória por meio de ponteiros... 399 14.5 acesso a variáveis acessadas por ponteiros... 399 14.6 atribuição de valor a ponteiro... 400 14.7 perda de acesso a uma variável... 400 14.8 exercícios de fixação... 402 14.9 em Pascal... 407 14.9.1 declaração de um ponteiro...407 14.9.2 alocação e liberação de memória por meio de ponteiros...408 14.10 em C... 409 14.10.1 declaração de um ponteiro...409 14.10.2 atribuição a ponteiros...409 14.10.3 operadores sobre ponteiros...409 14.10.4 aritmética sobre ponteiros...410 14.10.5 alocação e liberação de áreas de memória usando ponteiros...410 14.10.6 ponteiros para vetores...412

Sumário xxvii 14.11 dicas... 413 14.12 testes... 414 14.13 exercícios sugeridos... 414 14.14 termos-chave... 415 15 recursividade 417 15.1 conceito de recursividade... 418 15.2 subprograma recursivo... 419 15.3 implementação de subprogramas recursivos... 420 15.4 recursividade indireta... 422 15.5 vantagens e desvantagens da recursividade... 424 15.6 exercícios de fixação... 425 15.7 em Pascal... 432 15.8 em C... 433 15.9 dicas... 433 15.10 testes... 433 15.11 exercícios sugeridos... 433 15.12 termos-chave... 436 apêndice 437 referências 439 índice 441