4
Informática Volume 4
Informática Volume 4
Informática Programação de computadores Rfe De Crce Fih Crs Edrd Ribeir
São Paulo 2010
Informática Programação de computadores Rfe De Crce Fih Crs Edrd Ribeir
São Paulo 2010
GovernaDor José Serra
Psid Paulo Markun vic-Psid Fernando José de Almeida
núc Cuu educçã Coordenador: Fernando José de Almeida Gerente: Monica Gardelli Franco Equipe de autoria Centro Paula Souza Coordenação geral: Ivone Marchi Lainetti Ramos Coordenação da série Informática: Luis Eduardo Fernandes Gonzalez Autores: Carlos Eduardo Ribeiro, Evaldo Fernandes Réu Júnior, Gustavo Dibbern Piva, João Paulo Lemos Escola, Luciene Cavalcanti Rodrigues, Ralfe Della Croce Filho, Wilson José de Oliveira Revisão técnica : Anderson Wilker Sanfins, Luis Claudinei de Moraes, Humberto Celeste Innarelli, Sérgio Furgeri
equip d ediçã Coordenação geral
Alfredo Nastari Coordenação editorial
Mirian Ibañez Consultor técnico
Victor Emmanuel J. S. Vicente
vICe-GovernaDor Alberto Goldman
Edição de texto: Marlene Jaggi Editoresassistentes: Celia Demarchi
e Wagner Donizeti Roue Secretário editorial : Antonio Mello Revisores : Antonio Carlos Marues, Fabiana Lopes Bernardino, José Batista de Carvalho, Lieka Felso e Miguel Facchini Direção de arte : Deise Bitinas Edição de arte : Ana Onofri Editoras assistentes: Nane Carvalho, Nicéia Cecilia Lombardi e Roberta Moreira Assistentes: Ana Silvia Carvalho, Claudia Camargo e Felipe Lamas Ilustrações: Carlos Grillo Pesquisa iconográfica : Completo Iconografia, Maria Magalhães e Priscila Garofalo Fotografia: Carlos Piratininga, Eduardo Pozella (fotógrafos) e Daniela Müller (produtora) Tratamento de imagens: Sidnei Testa Impresso em Vitopaper 76g, papel sintético de plástico reciclado, da Vitopel, pela Gráfica Ideal.
Dds Iciis d Cgçã Pubicçã (CIP) D357 Della C roce Filho, Ralfe Informática , programação de comput adores / Ralfe Della Croce Filho, Carlos Eduardo Ribeiro ; revisor Sérgio Furgeri ; coordenador Luis Eduardo Fernandes Gonzalez. -- São Paulo : Fundação Padre Anchieta, 2010 (Manual de Informática Centro Paula Souza, v. 4) ISBN 978-85-61143-46-6 1. Sistemas operacionais (Computadores) 2. Softwares de aplicação I. Ribeiro, Carlos Eduardo II. Furgeri, Sérgio, revisor III. Gonzalez, Luis Eduardo Fernandes, coord. IV. Título Título CDD 005.43
SeCretrIo De DeSenvolvImento Geraldo Alckmin
Psid d Csh Dibi Yolanda Silvestre Di Supid Laura Laganá Vice-Diretor Superintendente César Silva Chefe de Gabinete da Superintendência Elenice Belmonte R. de Castro Coordenadora da Pós-Graduação, Extensão e Pesquisa Helena Gemignani Peterossi Coordenador do Ensino Superior de Graduação Angelo Luiz Cortelazzo Coordenador de Ensino Médio e Técnico Almério Meluíades de Araújo Coordenador de Formação Inicial e Educação Continuada Celso Antonio Gaiote Coordenador de Infraestrutura Rubens Goldman Coordenador de Gestão Administrativa e Financeira Armando Natal Maurício Coordenador de Recursos Humanos Elio Lourenço Bolzani Assessora de Avaliação Institucional Roberta Froncillo Assessora de Comunicação Gleise Santa Clara Procurador Jurídico Chefe Benedito Libério Bergamo
GovernaDor José Serra
Psid Paulo Markun vic-Psid Fernando José de Almeida
núc Cuu educçã Coordenador: Fernando José de Almeida Gerente: Monica Gardelli Franco Equipe de autoria Centro Paula Souza Coordenação geral: Ivone Marchi Lainetti Ramos Coordenação da série Informática: Luis Eduardo Fernandes Gonzalez Autores: Carlos Eduardo Ribeiro, Evaldo Fernandes Réu Júnior, Gustavo Dibbern Piva, João Paulo Lemos Escola, Luciene Cavalcanti Rodrigues, Ralfe Della Croce Filho, Wilson José de Oliveira Revisão técnica : Anderson Wilker Sanfins, Luis Claudinei de Moraes, Humberto Celeste Innarelli, Sérgio Furgeri
equip d ediçã Coordenação geral
Alfredo Nastari Coordenação editorial
Mirian Ibañez
vICe-GovernaDor Alberto Goldman SeCretrIo De DeSenvolvImento Geraldo Alckmin
Edição de texto: Marlene Jaggi Editoresassistentes: Celia Demarchi
e Wagner Donizeti Roue Secretário editorial : Antonio Mello Revisores : Antonio Carlos Marues, Fabiana Lopes Bernardino, José Batista de Carvalho, Lieka Felso e Miguel Facchini Direção de arte : Deise Bitinas Edição de arte : Ana Onofri Editoras assistentes: Nane Carvalho, Nicéia Cecilia Lombardi e Roberta Moreira Assistentes: Ana Silvia Carvalho, Claudia Camargo e Felipe Lamas Ilustrações: Carlos Grillo Pesquisa iconográfica : Completo Iconografia, Maria Magalhães e Priscila Garofalo Fotografia: Carlos Piratininga, Eduardo Pozella (fotógrafos) e Daniela Müller (produtora) Tratamento de imagens: Sidnei Testa
Psid d Csh Dibi Yolanda Silvestre Di Supid Laura Laganá Vice-Diretor Superintendente César Silva Chefe de Gabinete da Superintendência Elenice Belmonte R. de Castro Coordenadora da Pós-Graduação, Extensão e Pesquisa Helena Gemignani Peterossi Coordenador do Ensino Superior de Graduação Angelo Luiz Cortelazzo Coordenador de Ensino Médio e Técnico Almério Meluíades de Araújo Coordenador de Formação Inicial e Educação Continuada Celso Antonio Gaiote Coordenador de Infraestrutura Rubens Goldman Coordenador de Gestão Administrativa e Financeira Armando Natal Maurício Coordenador de Recursos Humanos Elio Lourenço Bolzani Assessora de Avaliação Institucional Roberta Froncillo Assessora de Comunicação Gleise Santa Clara Procurador Jurídico Chefe Benedito Libério Bergamo
Impresso em Vitopaper 76g, papel sintético de plástico reciclado, da Vitopel, pela Gráfica Ideal.
Consultor técnico
Victor Emmanuel J. S. Vicente
Dds Iciis d Cgçã Pubicçã (CIP) D357 Della C roce Filho, Ralfe Informática , programação de comput adores / Ralfe Della Croce Filho, Carlos Eduardo Ribeiro ; revisor Sérgio Furgeri ; coordenador Luis Eduardo Fernandes Gonzalez. -- São Paulo : Fundação Padre Anchieta, 2010 (Manual de Informática Centro Paula Souza, v. 4) ISBN 978-85-61143-46-6 1. Sistemas operacionais (Computadores) 2. Softwares de aplicação I. Ribeiro, Carlos Eduardo II. Furgeri, Sérgio, revisor III. Gonzalez, Luis Eduardo Fernandes, coord. IV. Título Título CDD 005.43
Suái 21 Cpíu 1 lógic d pgçã 1.1. Fluxograma e pseudocódigo . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1. 1.2. Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Constantes e variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5. Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6. Vetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7. Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8. Programação modular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22 26 26 27 29 40 42 44
49 Cpíu 2 esuu d dds Início
nome como caractere idade como inteiro salário como flutuante
nome ß “Joãozinho” idade ß 15 salário ß 1500
Fim
2.1. Lista encadeada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Lista circular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Lista duplamente encadeada . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Pilhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Filas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6. Árvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50 52 52 53 53 54
57 Cpíu 3 Ciçã d págis Wb 3.1. Identificação do documento . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.2. Estrutura do documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3. Formatação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6. Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7. Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8. Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9. Formulários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60 64 71 72 77 79 83 89
Capa: Luiz Felipe do Nascimento, aluno de uma Etec do Centro Paula Souza. Foto: Eduardo Pozella Edição: Deise Bitinas
93 Cpíu 4 lógic d pgçã picd à igug J 4.1. A plataforma de desenvolvimento . . . . . . . . . . . . . . . . . . . . . 96 4.1.1. 1. JRE ( Java Runtime Environment) . . . . . . . . . . . . . . . . . 97 4.1.1.1. 1.1. JVM (Java Virtual Machine) . . . . . . . . . . . . . . 97 4.1.1.2. 1.2. API (Application Programming Interface). . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.1.2. Ambientes de desenvolvim desenvolvimento ento . . . . . . . . . . . . . . . . . 98 4.1.2.1. JSE (Java Standard Edition). . . . . . . . . . . . . . 98 4.1.2.2. JEE (Java Enterprise Edition) . . . . . . . . . . . 98 4.1.2.3. JME (J ava Micro Edition). . . . . . . . . . . . . . . . 98 4.1.2.4. JDK (Java Development Kit) . . . . . . . . . . . 99 4.1.2.5. JSE: nosso foco . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.1.3. A portabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
S e t t e r s
dc f
Suái 21 Cpíu 1 lógic d pgçã 1.1. Fluxograma e pseudocódigo . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1. 1.2. Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Constantes e variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5. Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6. Vetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7. Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8. Programação modular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22 26 26 27 29 40 42 44
49 Cpíu 2 esuu d dds Início
nome como caractere idade como inteiro salário como flutuante
nome ß “Joãozinho” idade ß 15 salário ß 1500
Fim
2.1. Lista encadeada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Lista circular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Lista duplamente encadeada . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Pilhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. Filas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6. Árvores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50 52 52 53 53 54
57 Cpíu 3 Ciçã d págis Wb 3.1. Identificação do documento . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.2. Estrutura do documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.3. Formatação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5. Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6. Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7. Imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8. Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9. Formulários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60 64 71 72 77 79 83 89
Capa: Luiz Felipe do Nascimento, aluno de uma Etec do Centro Paula Souza. Foto: Eduardo Pozella Edição: Deise Bitinas
93 Cpíu 4 lógic d pgçã picd à igug J 4.1. A plataforma de desenvolvimento . . . . . . . . . . . . . . . . . . . . . 96 4.1.1. 1. JRE ( Java Runtime Environment) . . . . . . . . . . . . . . . . . 97 4.1.1.1. 1.1. JVM (Java Virtual Machine) . . . . . . . . . . . . . . 97 4.1.1.2. 1.2. API (Application Programming Interface). . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.1.2. Ambientes de desenvolvim desenvolvimento ento . . . . . . . . . . . . . . . . . 98 4.1.2.1. JSE (Java Standard Edition). . . . . . . . . . . . . . 98 4.1.2.2. JEE (Java Enterprise Edition) . . . . . . . . . . . 98 4.1.2.3. JME (J ava Micro Edition). . . . . . . . . . . . . . . . 98 4.1.2.4. JDK (Java Development Kit) . . . . . . . . . . . 99 4.1.2.5. JSE: nosso foco . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.1.3. A portabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
S e t t e r s
dc f
) ( a o s s e P r a t
Suái 4.2. Origem da orientação a objetos . . . . . . . . . . . . . . . . . . . . . . 100 4.2.1. Abstração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.3. UML (Unified Modeling Language) . . . . . . . . . . . . . . . . . . . . 101 4.4. Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5. Orientação a objetos (1) (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5.1. Componentes elementares . . . . . . . . . . . . . . . . . . . . . 104 4.5.1.1.. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.5.1.1 4.5.1.1.1. Atributos . . . . . . . . . . . . . . . . . . . . . 105 4.5.1.1.2. 4.5.1.1 .2. Métodos. . . . . . . . . . . . . . . . . . . . . . 105 4.5.1.1.3. 4.5.1.1 .3. Detalhando o diagrama de classe . . . . . . . . . . . 105 4.5.1.1.4. 4.5.1.1 .4. Codificação da classe Pessoa . . . . . . . . . . . . . . . . . 106 4.5.1.1.5. 4.5.1.1 .5. Comentários . . . . . . . . . . . . . . . . . 109 4.5.1.2. Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.5.2. Modificadores de acesso . . . . . . . . . . . . . . . . . . . . . . . 11 1111 4.5.2.1. Private . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1111 4.5.2.2. Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1122 4.5.2.3. Protected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1122 4.5.3. Métodos construtores . . . . . . . . . . . . . . . . . . . . . . . . . 11 1122 4.5.4. Garbage collector (coletor de lixo) . . . . . . . . . . . . 11 1133 4.5.5. O comando this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1133 4.5.6. Encapsulamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1133 4.5.6.1. Métodos de acesso . . . . . . . . . . . . . . . . . . . . 11 1144
4.5.6.1.1. Método get . . . . . . . . . . . . . . . . . . 11 1144 4.5.6.1.2. Método set . . . . . . . . . . . . . . . . . . 11 1155 4.5.7. Representação do encapsulamento em objeto do tipo Pessoa . . . . . . . . . . . . . . . . . . . . . . 11 1155 4.5.8. Visão geral da classe Pessoa e sua estrutura . . . . . . . . . . . . . . . . . . . . . . . . . 11 1166 4.6. Entrada e saída de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1177 4.6.1. Declaração import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1177 4.6.2. Apresentação de dados (saída) . . . . . . . . . . . . . . . . . 11 1177 4.6.3. Leitura de dados (entrada) . . . . . . . . . . . . . . . . . . . . . 11 1199 4.7. Assinatura de métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.7.1. Retorno de valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.7.2. Passagem de parâmetro . . . . . . . . . . . . . . . . . . . . . . . . 121 4.7.3. Retorno de valor e passagem de parâmetro . . . . . . . . . . . . . . . . . . . . . . 121 4.8. Estruturas e recursos da linguagem Java . . . . . . . . . . . . . . 122 4.8.1. Palavras reservadas do Java . . . . . . . . . . . . . . . . . . . . 122 4.8.2. Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.8.3. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.8.4. Variáveis e constantes . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.8.5. Conversões de tipos de dados . . . . . . . . . . . . . . . . . 126 4.8.5.1. Conversão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.8.5.2. Cast (matriz) . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.8.5.3. Promoção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Suái 4.2. Origem da orientação a objetos . . . . . . . . . . . . . . . . . . . . . . 100 4.2.1. Abstração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.3. UML (Unified Modeling Language) . . . . . . . . . . . . . . . . . . . . 101 4.4. Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5. Orientação a objetos (1) (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5.1. Componentes elementares . . . . . . . . . . . . . . . . . . . . . 104 4.5.1.1.. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.5.1.1 4.5.1.1.1. Atributos . . . . . . . . . . . . . . . . . . . . . 105 4.5.1.1.2. 4.5.1.1 .2. Métodos. . . . . . . . . . . . . . . . . . . . . . 105 4.5.1.1.3. 4.5.1.1 .3. Detalhando o diagrama de classe . . . . . . . . . . . 105 4.5.1.1.4. 4.5.1.1 .4. Codificação da classe Pessoa . . . . . . . . . . . . . . . . . 106 4.5.1.1.5. 4.5.1.1 .5. Comentários . . . . . . . . . . . . . . . . . 109 4.5.1.2. Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.5.2. Modificadores de acesso . . . . . . . . . . . . . . . . . . . . . . . 11 1111 4.5.2.1. Private . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1111 4.5.2.2. Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1122 4.5.2.3. Protected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1122 4.5.3. Métodos construtores . . . . . . . . . . . . . . . . . . . . . . . . . 11 1122 4.5.4. Garbage collector (coletor de lixo) . . . . . . . . . . . . 11 1133 4.5.5. O comando this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1133 4.5.6. Encapsulamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1133 4.5.6.1. Métodos de acesso . . . . . . . . . . . . . . . . . . . . 11 1144
4.5.6.1.1. Método get . . . . . . . . . . . . . . . . . . 11 1144 4.5.6.1.2. Método set . . . . . . . . . . . . . . . . . . 11 1155 4.5.7. Representação do encapsulamento em objeto do tipo Pessoa . . . . . . . . . . . . . . . . . . . . . . 11 1155 4.5.8. Visão geral da classe Pessoa e sua estrutura . . . . . . . . . . . . . . . . . . . . . . . . . 11 1166 4.6. Entrada e saída de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1177 4.6.1. Declaração import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1177 4.6.2. Apresentação de dados (saída) . . . . . . . . . . . . . . . . . 11 1177 4.6.3. Leitura de dados (entrada) . . . . . . . . . . . . . . . . . . . . . 11 1199 4.7. Assinatura de métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.7.1. Retorno de valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.7.2. Passagem de parâmetro . . . . . . . . . . . . . . . . . . . . . . . . 121 4.7.3. Retorno de valor e passagem de parâmetro . . . . . . . . . . . . . . . . . . . . . . 121 4.8. Estruturas e recursos da linguagem Java . . . . . . . . . . . . . . 122 4.8.1. Palavras reservadas do Java . . . . . . . . . . . . . . . . . . . . 122 4.8.2. Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.8.3. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.8.4. Variáveis e constantes . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.8.5. Conversões de tipos de dados . . . . . . . . . . . . . . . . . 126 4.8.5.1. Conversão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.8.5.2. Cast (matriz) . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.8.5.3. Promoção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Suái 0
1
2
3
4
0
12
1
6
47
85
1
4
36
62
25
3
2
32
67
74
41
3
8
23
9
4
17
49
4.8.6. Desvios condicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.8.6.1. If-else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.8.6.2. Switch-case . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.8.7. Laços de repetição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.8.7.1. While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.8.7.2. Do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.7.3. For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.8. Array (Vetor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.8.1. Unidimensional . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.8.2. Bidimensional (Matrizes) . . . . . . . . . . . . . . 133 4.8.9. Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.8.9.1. ArrayList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.9. Orientação a objetos (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.9.1. Herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.9.2. Sobrecarga de método (overload) (overload) . . . . . . . . . . . . . 142 4.9.3. Sobrescrita de método (override) . . . . . . . . . . . . . . 145 4.9.4. Classes e métodos abstratos . . . . . . . . . . . . . . . . . . . 147 4.9.5. Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 4.9.6. Polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.9.6.1. De métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.9.6.2. De classe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.9.6.3. De interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 4.10. Padrões de desenvolvimento de sistemas . . . . . . . . . . . 154 4.10.1.. Programação em três camadas . . . . . . . . . . . . . . . . 154 4.10.1 4.10.2. MVC (Model, View, Controller) . . . . . . . . . . . . . . 154
4.10.3. Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 4.11. 4.1 1. Interfaces gráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 4.11.1. AWT (Abstract Window Toolkit) . . . . . . . . . . . . . 156 4.11.2. 4.1 1.2. Inter faces listeners . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 4.11.3. Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 4.12. Tratamento de exceções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 4.12.1. Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 4.12.2. Exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 4.12.2.1. Unchecked Exception . . . . . . . . . . . . . . . . 167 4.12.2.2. Checked Exception . . . . . . . . . . . . . . . . . . 167 4.12.2.3. Throws . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 4.12.2.4. Try-catch-finally . . . . . . . . . . . . . . . . . . . . . . 167 4.13. Conexão com banco de dados . . . . . . . . . . . . . . . . . . . . . . . 172 4.13.1. 1. JDBC ( Java Database Connectivity) . . . . . . . . . . . 172 4.13.2. Implementação do acesso a dados . . . . . . . . . . . . 17 1744 4.13.2.1.. Classe java.sql.Statement . . . . . . . . . . . . . 176 4.13.2.1 4.13.2.2. A classe PreparedStatement . . . . . . . . . 176 4.13.2.3. A classe CallableStatement . . . . . . . . . . 176 4.13.3. Inclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 4.13.4. 4. Alteração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 4.13.5. Exclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 4.13.6. Listagem geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 4.13.7. Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Suái 0
1
2
3
4
0
12
1
6
47
85
1
4
36
62
25
3
2
32
67
74
41
3
8
23
9
4
17
49
4.8.6. Desvios condicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.8.6.1. If-else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.8.6.2. Switch-case . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.8.7. Laços de repetição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.8.7.1. While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.8.7.2. Do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.7.3. For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.8. Array (Vetor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.8.1. Unidimensional . . . . . . . . . . . . . . . . . . . . . . . . 131 4.8.8.2. Bidimensional (Matrizes) . . . . . . . . . . . . . . 133 4.8.9. Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.8.9.1. ArrayList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.9. Orientação a objetos (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.9.1. Herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 4.9.2. Sobrecarga de método (overload) (overload) . . . . . . . . . . . . . 142 4.9.3. Sobrescrita de método (override) . . . . . . . . . . . . . . 145 4.9.4. Classes e métodos abstratos . . . . . . . . . . . . . . . . . . . 147 4.9.5. Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 4.9.6. Polimorfismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.9.6.1. De métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.9.6.2. De classe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 4.9.6.3. De interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 4.10. Padrões de desenvolvimento de sistemas . . . . . . . . . . . 154 4.10.1.. Programação em três camadas . . . . . . . . . . . . . . . . 154 4.10.1 4.10.2. MVC (Model, View, Controller) . . . . . . . . . . . . . . 154
4.10.3. Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 4.11. 4.1 1. Interfaces gráficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 4.11.1. AWT (Abstract Window Toolkit) . . . . . . . . . . . . . 156 4.11.2. 4.1 1.2. Inter faces listeners . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 4.11.3. Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 4.12. Tratamento de exceções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 4.12.1. Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 4.12.2. Exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 4.12.2.1. Unchecked Exception . . . . . . . . . . . . . . . . 167 4.12.2.2. Checked Exception . . . . . . . . . . . . . . . . . . 167 4.12.2.3. Throws . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 4.12.2.4. Try-catch-finally . . . . . . . . . . . . . . . . . . . . . . 167 4.13. Conexão com banco de dados . . . . . . . . . . . . . . . . . . . . . . . 172 4.13.1. 1. JDBC ( Java Database Connectivity) . . . . . . . . . . . 172 4.13.2. Implementação do acesso a dados . . . . . . . . . . . . 17 1744 4.13.2.1.. Classe java.sql.Statement . . . . . . . . . . . . . 176 4.13.2.1 4.13.2.2. A classe PreparedStatement . . . . . . . . . 176 4.13.2.3. A classe CallableStatement . . . . . . . . . . 176 4.13.3. Inclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 4.13.4. 4. Alteração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 4.13.5. Exclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 4.13.6. Listagem geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 4.13.7. Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Suái 185 Cpíu 5 visu Sudi 2008 5.1. .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 5.1.1. 1. Máquina virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 5.1.2. Garbage collector (coletor de lixo) . . . . . . . . . . . . 188 5.2. Soluções e projetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 5.2.1. Iniciando o Visual Studio – Solution . . . . . . . . . . . . 189 5.2.2. Conhecendo o Visual Studio . . . . . . . . . . . . . . . . . . . 190 5.2.3. Gerenciador de janelas . . . . . . . . . . . . . . . . . . . . . . . . . 192 5.2.4. Nomenclatura de componentes . . . . . . . . . . . . . . . 193 5.2.5. IntelliSense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 5.2.6. Executando a aplicação. . . . . . . . . . . . . . . . . . . . . . . . . 194 5.2.7. Identificação de erros . . . . . . . . . . . . . . . . . . . . . . . . . . 195
197 Cpíu 6 C Shp 6.1. Programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 6.1.1.. Console Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 6.1.1 6.1.2. Windows Form Application . . . . . . . . . . . . . . . . . . . . 198 6.2. Tipos de dados e variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 6.2.1. Alocação de memória . . . . . . . . . . . . . . . . . . . . . . . . . . 201 6.3. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 6.3.1. Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . 202 6.3.2. Operadores relacionais . . . . . . . . . . . . . . . . . . . . . . . . 202 6.3.3. Operadores aritméticos de atribuição reduzida . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.3.4. Operadores de incremento e decremento . . . . 203 6.3.5. Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.3.6. Conversões C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.3.7. Parse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.3.8. Convert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.4. Estrutura de decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 6.4.1. Condição verdadeiro – if . . . . . . . . . . . . . . . . . . . . . . . 205 6.4.2. Condição verdadeiro ou falso – if…else . . . . . . . 205 6.4.3. Condições múltiplas – if...elseif...elseif....else. . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 6.4.4. Múltiplos testes – Switch() . . . . . . . . . . . . . . . . . . . . 206 6.5. Estruturas de repetição usadas na linguagem . . . . . . . . 207 6.5.1. While() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 6.5.2. Do… While() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 6.5.3. For() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 6.5.4. Break e continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 6.6. Tratamento de erros / exceções . . . . . . . . . . . . . . . . . . . . . . 210 6.6.1. Exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2111 6.7. Vetores e matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 6.8. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2133 6.9. Windows Form Application – componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 6.9.1. Form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 6.9.2. Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2177 6.9.3. TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 6.9.4. Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
// imprime os dados do veículo e c onsole “Veículo: “ “ marchas” Console “Combustível // inicia a movimentação do carro // consulta a velocidade do veículo // visualiza a velocidade do veícul Console “Velocidade A Console // aumenta a velocidade do veícul Console Console
“Velocidade A
// começa a parar o carro // a primeira chamada diminui e Console Console
“Velocidade A
Suái 185 Cpíu 5 visu Sudi 2008 5.1. .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 5.1.1. 1. Máquina virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 5.1.2. Garbage collector (coletor de lixo) . . . . . . . . . . . . 188 5.2. Soluções e projetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 5.2.1. Iniciando o Visual Studio – Solution . . . . . . . . . . . . 189 5.2.2. Conhecendo o Visual Studio . . . . . . . . . . . . . . . . . . . 190 5.2.3. Gerenciador de janelas . . . . . . . . . . . . . . . . . . . . . . . . . 192 5.2.4. Nomenclatura de componentes . . . . . . . . . . . . . . . 193 5.2.5. IntelliSense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 5.2.6. Executando a aplicação. . . . . . . . . . . . . . . . . . . . . . . . . 194 5.2.7. Identificação de erros . . . . . . . . . . . . . . . . . . . . . . . . . . 195
197 Cpíu 6 C Shp 6.1. Programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 6.1.1.. Console Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 6.1.1 6.1.2. Windows Form Application . . . . . . . . . . . . . . . . . . . . 198 6.2. Tipos de dados e variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 6.2.1. Alocação de memória . . . . . . . . . . . . . . . . . . . . . . . . . . 201 6.3. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 6.3.1. Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . 202 6.3.2. Operadores relacionais . . . . . . . . . . . . . . . . . . . . . . . . 202 6.3.3. Operadores aritméticos de atribuição reduzida . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.3.4. Operadores de incremento e decremento . . . . 203 6.3.5. Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.3.6. Conversões C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.3.7. Parse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.3.8. Convert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 6.4. Estrutura de decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 6.4.1. Condição verdadeiro – if . . . . . . . . . . . . . . . . . . . . . . . 205 6.4.2. Condição verdadeiro ou falso – if…else . . . . . . . 205 6.4.3. Condições múltiplas – if...elseif...elseif....else. . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 6.4.4. Múltiplos testes – Switch() . . . . . . . . . . . . . . . . . . . . 206 6.5. Estruturas de repetição usadas na linguagem . . . . . . . . 207 6.5.1. While() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 6.5.2. Do… While() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 6.5.3. For() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 6.5.4. Break e continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 6.6. Tratamento de erros / exceções . . . . . . . . . . . . . . . . . . . . . . 210 6.6.1. Exception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2111 6.7. Vetores e matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 6.8. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2133 6.9. Windows Form Application – componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 6.9.1. Form. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 6.9.2. Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2177 6.9.3. TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 6.9.4. Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
// imprime os dados do veículo e c onsole “Veículo: “ “ marchas” Console “Combustível // inicia a movimentação do carro // consulta a velocidade do veículo // visualiza a velocidade do veícul Console “Velocidade A Console // aumenta a velocidade do veícul Console Console
“Velocidade A
// começa a parar o carro // a primeira chamada diminui e Console Console
“Velocidade A
Suái 6.9.5. ComboBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 6.9.6. ListBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 6.9.7. CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.9.8. RadioButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 6.9.8.1. Agrupamento . . . . . . . . . . . . . . . . . . . . . . . . . . 222 6.10. Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
225 Cpíu 7 visu Bsic.net 7.1. Programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 7.1.1. Console Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 7.1.2. 1.2. Windows Form Application . . . . . . . . . . . . . . . . . . . . 226 7.2. Tipos de dados e variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 7.2.1. Atribuição – DIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 7.2.2. Variáveis globais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 7.3. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 7.3.1.. Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . 229 7.3.1 7.3.2. Operadores relacionais . . . . . . . . . . . . . . . . . . . . . . . . . 229 7.3.3. Operadores aritméticos de atribuição reduzida . .230 7.3.4. Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 7.3.5. Conversões em VB.NET . . . . . . . . . . . . . . . . . . . . . . . 230 7.4. Estrutura de decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.4.1. Condição Verdadeiro – if . . . . . . . . . . . . . . . . . . . . . . . 231 7.4.2. Condição Verdadeiro ou Falso – if…else . . . . . . 231
7.4.3. Condições Múltiplas – if...elseif...else if...elseif...elseif....else if....else . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.4.4. 4. Múltiplos testes – Select Case() . . . . . . . . . . . . . . . . 232 7.5. Estrutura de repetição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 7.5.1. While() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 7.5.2. Do While()...Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.5.3. Do...Loop Until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.5.4. For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.5.5. For...Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.6. Tratamento de erros e exceções . . . . . . . . . . . . . . . . . . . . . 234 7.7. Vetores e matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 7.8. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 7.9.. Windows form application – componentes . . . . . . . . . . . 236 7.9 7.9.1.. For m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 7.9.1 7.9.2. 7.9 .2. B utton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 7.9.3. TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.9.4. Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.9.5. ComboBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.9.6. 7.9 .6. ListBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 7.9.7. CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 ) 7.9.8. 7.9 .8. RadioButton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 U M ” e l X é e r = 3 v g á á ) e e i ( t r n n n 7.9.8.1. 7.9 .8.1. Agrupamento . . . . . . . . . . . . . . . M . . a . . i. . . . . . . s240 v a I S ” ) A I n n e ( “ A é D O i n S u b D i m m x A e L X e e t t l T i e r 7.10. Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x . . . 1 240 l e á v . a r i á o e W S ” ) I f f = C o n s o n i n ( “ A v é R 2 T e r i t t e L n e X e = l e x v á . e I f n s o e W o r ” o o l e v a r i á E l s s e o v a l C o 3 T e n e n e ( “ A u t r r o L i n o e t t = = r i e r x q u . e I f f n s o e W u a l q o l e E l s s e C o n e ( “ Q e L i n e t t i r l W
Suái 6.9.5. ComboBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 6.9.6. ListBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 6.9.7. CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 6.9.8. RadioButton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 6.9.8.1. Agrupamento . . . . . . . . . . . . . . . . . . . . . . . . . . 222 6.10. Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
225 Cpíu 7 visu Bsic.net 7.1. Programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 7.1.1. Console Application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 7.1.2. 1.2. Windows Form Application . . . . . . . . . . . . . . . . . . . . 226 7.2. Tipos de dados e variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 7.2.1. Atribuição – DIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 7.2.2. Variáveis globais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 7.3. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 7.3.1.. Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . 229 7.3.1 7.3.2. Operadores relacionais . . . . . . . . . . . . . . . . . . . . . . . . . 229 7.3.3. Operadores aritméticos de atribuição reduzida . .230 7.3.4. Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 7.3.5. Conversões em VB.NET . . . . . . . . . . . . . . . . . . . . . . . 230 7.4. Estrutura de decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.4.1. Condição Verdadeiro – if . . . . . . . . . . . . . . . . . . . . . . . 231 7.4.2. Condição Verdadeiro ou Falso – if…else . . . . . . 231
7.4.3. Condições Múltiplas – if...elseif...else if...elseif...elseif....else if....else . . . . . . . . . . . . . . . . . . . . . . . . . . 231 7.4.4. 4. Múltiplos testes – Select Case() . . . . . . . . . . . . . . . . 232 7.5. Estrutura de repetição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 7.5.1. While() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 7.5.2. Do While()...Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.5.3. Do...Loop Until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.5.4. For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.5.5. For...Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 7.6. Tratamento de erros e exceções . . . . . . . . . . . . . . . . . . . . . 234 7.7. Vetores e matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 7.8. Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 7.9.. Windows form application – componentes . . . . . . . . . . . 236 7.9 7.9.1.. For m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 7.9.1 7.9.2. 7.9 .2. B utton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 7.9.3. TextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.9.4. Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.9.5. ComboBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 7.9.6. 7.9 .6. ListBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 7.9.7. CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 ) 7.9.8. 7.9 .8. RadioButton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 U M ” r = 3 e l X é e v g á á ) e e i ( t r .n. . . . . A 7.9.8.1. 7.9 .8.1. Agrupamento . . . . . . . . . . . . . . . M . . a . . i n . s240 I n v a I S ” ) n e ( “ A é D O i n S u b i m m x A T e n i t t e e l X r e L v 7.10. Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D . . . . x . = . . 1 240 l e á á W i . r e v a o e n S ” ) I f f C o n s o n e ( “ A T i t t e é R i n 2 L X e = l e á v . r e I f x n s o e W o r ” o o l e v a r i á E l s s e o v a l C o 3 T e n e n e ( “ A t r r o i n u L o e t t = = r i e q u . r e I f f x n s o e W u a l q o l e E l s s e C o n e ( “ Q e L i n e t t i r . e n s o e W o l e E l s s e C o ( ) I f e a d K e y R E n d s o e. R o l e n o C b
Suái 243 Cpíu 8 aSP.net 8.1. Aplicação ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 8.1.2. Web Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 8.1.3. Projeto Web Web Application (Aplicação Web) . . 245 8.1.4. Ciclo de vida da Aplicação . . . . . . . . . . . . . . . . . . . . . . 246 8.1.5. Executando uma Application Service (Serviço de Aplicação) . . . . . . . . . . . . . . . . . . . . . . . . . . 246 8.1.6. Escrevendo a Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . 247 8.1.7.. Estruturando uma página A SP.NET . . . . . . . . . . . . 248 8.1.7 8.1.7.1. HTML Server Controls . . . . . . . . . . . . . . . . 248 8.1.7.2. 8.1.7 .2. Web Server Controls . . . . . . . . . . . . . . . . . 249 8.1.7.3. 8.1.7 .3. Validation Server Controls . . . . . . . . . . . . 249 8.2. Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 8.3. HTML Server Controls e Web Server Controls . . . . . 250 8.3.1. HTML Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . 250 8.3.2. Web Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . 251 8.4. Sessões em ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 8.4.1. Recuperando sessão em outra página por meio de um evento . . . . . . . . . . . . . . . . . . . . . . . . 254 8.4.2. Recuperando sessão em outra página automaticamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 8.5. Dados via URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
261 CaPÍtUlo 9 aDo.net 9.1. DataSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.2. DataReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.3. Objetos para banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . 265 9.3.1. Objeto DataTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 9.3.2. Objeto DataView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.4. Métodos de conexão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.4.1. Objeto Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.4.2. Exemplo genérico de conexão . . . . . . . . . . . . . . . . . 267 9.4.2.1. Implementando a leitura de dados . . . . 268 9.4.3. Conexão com VB.NET . . . . . . . . . . . . . . . . . . . . . . . . . 269 9.4.3.1.. Base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . 269 9.4.3.1 9.4.3.2. Criando o Form . . . . . . . . . . . . . . . . . . . . . . . 270 9.4.3.3. Inserindo o código . . . . . . . . . . . . . . . . . . . . . 270 9.4.3.4. Utilizando uma DataT DataTable able . . . . . . . . . . . . . 271 9.4.3.4.1.. Visual do DataGrid . . . . . . . . . . 274 9.4.3.4.1 9.4.3.5. Travando colunas . . . . . . . . . . . . . . . . . . . . . . 274 9.4.4. Utilizando um DataView . . . . . . . . . . . . . . . . . . . . . . . . 275 9.4.5. Conectando com ASP.NET . . . . . . . . . . . . . . . . . . . . 277 282 Csidçõs fiis 283 rfêcis bibigáfics 285 Gssái
Suái 243 Cpíu 8 aSP.net 8.1. Aplicação ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 8.1.2. Web Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 8.1.3. Projeto Web Web Application (Aplicação Web) . . 245 8.1.4. Ciclo de vida da Aplicação . . . . . . . . . . . . . . . . . . . . . . 246 8.1.5. Executando uma Application Service (Serviço de Aplicação) . . . . . . . . . . . . . . . . . . . . . . . . . . 246 8.1.6. Escrevendo a Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . 247 8.1.7.. Estruturando uma página A SP.NET . . . . . . . . . . . . 248 8.1.7 8.1.7.1. HTML Server Controls . . . . . . . . . . . . . . . . 248 8.1.7.2. 8.1.7 .2. Web Server Controls . . . . . . . . . . . . . . . . . 249 8.1.7.3. 8.1.7 .3. Validation Server Controls . . . . . . . . . . . . 249 8.2. Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 8.3. HTML Server Controls e Web Server Controls . . . . . 250 8.3.1. HTML Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . 250 8.3.2. Web Server Controls . . . . . . . . . . . . . . . . . . . . . . . . . . 251 8.4. Sessões em ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 8.4.1. Recuperando sessão em outra página por meio de um evento . . . . . . . . . . . . . . . . . . . . . . . . 254 8.4.2. Recuperando sessão em outra página automaticamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 8.5. Dados via URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
261 CaPÍtUlo 9 aDo.net 9.1. DataSet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.2. DataReader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.3. Objetos para banco de dados . . . . . . . . . . . . . . . . . . . . . . . . . 265 9.3.1. Objeto DataTable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 9.3.2. Objeto DataView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.4. Métodos de conexão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.4.1. Objeto Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.4.2. Exemplo genérico de conexão . . . . . . . . . . . . . . . . . 267 9.4.2.1. Implementando a leitura de dados . . . . 268 9.4.3. Conexão com VB.NET . . . . . . . . . . . . . . . . . . . . . . . . . 269 9.4.3.1.. Base de dados . . . . . . . . . . . . . . . . . . . . . . . . . . 269 9.4.3.1 9.4.3.2. Criando o Form . . . . . . . . . . . . . . . . . . . . . . . 270 9.4.3.3. Inserindo o código . . . . . . . . . . . . . . . . . . . . . 270 9.4.3.4. Utilizando uma DataT DataTable able . . . . . . . . . . . . . 271 9.4.3.4.1.. Visual do DataGrid . . . . . . . . . . 274 9.4.3.4.1 9.4.3.5. Travando colunas . . . . . . . . . . . . . . . . . . . . . . 274 9.4.4. Utilizando um DataView . . . . . . . . . . . . . . . . . . . . . . . . 275 9.4.5. Conectando com ASP.NET . . . . . . . . . . . . . . . . . . . . 277 282 Csidçõs fiis 283 rfêcis bibigáfics 285 Gssái
Capítulo 1
Lógica de programação • Fluxograma e pseudocódigo • Tipos de dados • Constantes e variáveis • Operadores • Comandos • Vetor • Matriz • Programação modular
Capítulo 1
Lógica de programação • Fluxograma e pseudocódigo • Tipos de dados • Constantes e variáveis • Operadores • Comandos • Vetor • Matriz • Programação modular
InFoRmátICa 4
CaPítulo 1
Qud Algoritmo com os passos necessários da latinha.
1 - Pegar o recipiente.
2 - Abrir a tampa.
3 - Tomar o conteúdo.
Qud
A
lógicacomputacionaléumdosprimeirospassosparaquem pretendeentrarnomundodacomputação. pretend eentrarnomundodacomputação.Normalment Normalmente, e, nãopercebemossuaaplicaçãopararesolverdiferentesníveis deproblemasnemsuarelaçãocomoutrasáreasdaciência.Issoporque, em geral,a lógicacomputac lógicacomputacionalestá ionalestá associadaà lógicamatemática (FORBELONE,2005).Éumrecursoquepermiteacriaçãodealternativasviáveisetecnicamentecorretas,eficienteserápidas.Antesde resolverumproblema,noentanto,temosdesaberinterpretá-lo.Assim, evitam-seresultadosindesejáveisoudesviosdepercurso,damesmamaneiraquesurgeaoport neiraqu esurgeaoportunidadedeelimin unidadedeeliminareventuaisd areventuaisdúvidas,defininúvidas,definindoomelhoralgoritm doomelhor algoritmo,quepod o,quepodeseropseudo eseropseudocódigoouo códigoouofluxograma. fluxograma. Amaioriadasatividadesqueexecutamoséresultadodeumasequênciadepassoslógicos.Porexempl soslógico s.Porexemplo,amarrarocadarçodeum o,amarrarocadarçodeum tênis, tênis,abrirumaporta, abrirumaporta, trocarumalâmpadaoufazeraqueledeliciosobolodechocolate.Asequência dasetapas,oumelhor,dasoperaçõesaexecutar,édeterminadapeloalgoritmo deformalógica.Umamaneiramaissimplesdedizerissoéqueasucessãode açõesfaztodoosentido.Usandoomesm açõesfaztodoosentid o.Usandoomesmoexemplodob oexemplodobolo,ocomeço olo,ocomeçodetudo detudo éreunirosingredienteseusá-losnasequênciacerta.Éassimtambémcomas operaçõesdecálculos,representadaspelopseudocódigoapartirdecomandos noformatodetexto(exatamentecomoumareceita)oupelouxogramade formagráca.Eofatodeserconstituídoporsímbolosgeométricosfacilitao processodevisualizaçãodasoperações.
Algoritmo detalhado da latinha.
1 - Pegar o refrigerante com a mão esuerda.
2 - Segurar o lacre com a mão direita.
3 - Remover o lacre.
4 Eliminar o lacre.
5 Posicionar a lata corretamente na boca.
6 - Inclinar a lata.
7 - Ingerir o líuido.
8 - Voltar a lata na posição original.
1.1.. Fxgr e psedcódig 1.1 Paraentendermelhoroconceito,vamoselaborar,resumidamente,umalgoritmoquerepresenteospassosnecessáriosparaquealguémtomeum refrigeranteemumalata:1.pegarorecipiente;2.abrira refrigeranteemumalata:1.pegaroreci piente;2.abriratampa;3.tomar tampa;3.tomar oconteúdo(vejaquadro Algorítimo com os passos necessários da latinha ).A partirdessamesmasituação,épossívelinserirmaisoperaçõesemnosso algoritmo,deixando-omaisdetalhado(observeoquadro Algoritmo detalhado da latinha).
InFoRmátICa 4
CaPítulo 1
Qud Algoritmo com os passos necessários da latinha.
1 - Pegar o recipiente.
2 - Abrir a tampa.
3 - Tomar o conteúdo.
Qud
A
lógicacomputacionaléumdosprimeirospassosparaquem pretendeentrarnomundodacomputação. pretend eentrarnomundodacomputação.Normalment Normalmente, e, nãopercebemossuaaplicaçãopararesolverdiferentesníveis deproblemasnemsuarelaçãocomoutrasáreasdaciência.Issoporque, em geral,a lógicacomputac lógicacomputacionalestá ionalestá associadaà lógicamatemática (FORBELONE,2005).Éumrecursoquepermiteacriaçãodealternativasviáveisetecnicamentecorretas,eficienteserápidas.Antesde resolverumproblema,noentanto,temosdesaberinterpretá-lo.Assim, evitam-seresultadosindesejáveisoudesviosdepercurso,damesmamaneiraquesurgeaoport neiraqu esurgeaoportunidadedeelimin unidadedeeliminareventuaisd areventuaisdúvidas,defininúvidas,definindoomelhoralgoritm doomelhor algoritmo,quepod o,quepodeseropseudo eseropseudocódigoouo códigoouofluxograma. fluxograma. Amaioriadasatividadesqueexecutamoséresultadodeumasequênciadepassoslógicos.Porexempl soslógico s.Porexemplo,amarrarocadarçodeum o,amarrarocadarçodeum tênis, tênis,abrirumaporta, abrirumaporta, trocarumalâmpadaoufazeraqueledeliciosobolodechocolate.Asequência dasetapas,oumelhor,dasoperaçõesaexecutar,édeterminadapeloalgoritmo deformalógica.Umamaneiramaissimplesdedizerissoéqueasucessãode açõesfaztodoosentido.Usandoomesm açõesfaztodoosentid o.Usandoomesmoexemplodob oexemplodobolo,ocomeço olo,ocomeçodetudo detudo éreunirosingredienteseusá-losnasequênciacerta.Éassimtambémcomas operaçõesdecálculos,representadaspelopseudocódigoapartirdecomandos noformatodetexto(exatamentecomoumareceita)oupelouxogramade formagráca.Eofatodeserconstituídoporsímbolosgeométricosfacilitao processodevisualizaçãodasoperações.
Algoritmo detalhado da latinha.
1 - Pegar o refrigerante com a mão esuerda.
2 - Segurar o lacre com a mão direita.
3 - Remover o lacre.
4 Eliminar o lacre.
5 Posicionar a lata corretamente na boca.
6 - Inclinar a lata.
7 - Ingerir o líuido.
8 - Voltar a lata na posição original.
1.1.. Fxgr e psedcódig 1.1 Paraentendermelhoroconceito,vamoselaborar,resumidamente,umalgoritmoquerepresenteospassosnecessáriosparaquealguémtomeum refrigeranteemumalata:1.pegarorecipiente;2.abrira refrigeranteemumalata:1.pegaroreci piente;2.abriratampa;3.tomar tampa;3.tomar oconteúdo(vejaquadro Algorítimo com os passos necessários da latinha ).A partirdessamesmasituação,épossívelinserirmaisoperaçõesemnosso algoritmo,deixando-omaisdetalhado(observeoquadro Algoritmo detalhado da latinha).
23
22
InFoRmátICa 4
CaPítulo 1
Entreosdiferentessímbolosqueconstituemaestruturadeumuxograma,os maiscomunsestãoincluídosnatabela1. tb 1
Aproveitandoomesmoexemplodalatinhaderefrigerante,vamosreescreverospassoslógicospormeiodeumfluxograma(figura1).
SIMBOLOGIA DO FLUXOGRAMA SÍMBOLO
NOME E FUNÇÃO
Início
NOME = TERMINAL FUNÇÃO = Indica INÍCIO ou FIM de um processamento
Inícioa Pegar latinha
NOME = PROCESSAMENTO FUNÇÃO = Definição de variáveis ou processamentos em geral (Cálculos) Abrir a tampa
NOME = ENTRADA MANUAL FUNÇÃO = Entrada de dados via teclado, idêntico ao comando LEIA
NOME = DECISÃO FUNÇÃO = Decisão a ser tomada, retornando verdadeiro ou falso, idêntico ao comando SE NOME = CONECTOR FUNÇÃO = Desvia o fluxo para uma outra página, sendo interligados pelo conector NOME = ENTRADA/SAÍDA FUNÇÃO = Leitura de gravação de arquivos NOME = SETA FUNÇÃO = Indica a direção do fluxo
Eliminar o lacre
Segurar o lacre
Posicionar a lata na boca
Voltar a lata na posição original
Pegar o refrigerante
Inclinar a lata
Ingerir o líquido
Existemmuitossoftwaresdestinadosàconstruçãodeuxogramas,masépossívelfazê-lostambémcomouso comousodoMicrosoftWor doMicrosoftWord®.Osexemp d®.Osexemplosdessematerial losdessematerial foramelaboradospeloMicrosoftVisio®.
Psedcódig Osalgoritmossãodesenvolvidosemumalinguagemdenominadapseudocódigoou,comopreferemalgunsautores,portuguêsestruturado.Podemser criadossemoformalismodaslinguagens criado ssemoformalismodaslinguagensdeprogramaçã deprogramação,masobedecema o,masobedecema umaregrabásicadeestruturação:cabeçalho,declaraçãoeinstruções,conformeoseguintemodelo: Programa nome_do_programa
Título do Algoritmo
Declare {declaração de variáveis}
Início {instruções e comandos}
NOME = LOOP FUNÇÃO = Realiza o controle de loop
Remover o lacre
Tomar o refrigerante
NOME = DISPLAY FUNÇÃO = Saída de Dados, mostra um texto e/ou variável na tela, idêntico ao comando ESCREVA NOME = DOCUMENTO FUNÇÃO = Saída de Dados, envia um texto e/ou variável para a impressora, usado em relatórios. Idêntico ao comando IMPRIMA
Fi m
Fim
Declarações de variáveis Comandos e instruções ordenados de forma lógica
Figu 1 Fluxograma dos passos lógicos.
InFoRmátICa 4
CaPítulo 1
Entreosdiferentessímbolosqueconstituemaestruturadeumuxograma,os maiscomunsestãoincluídosnatabela1. tb 1
Aproveitandoomesmoexemplodalatinhaderefrigerante,vamosreescreverospassoslógicospormeiodeumfluxograma(figura1).
SIMBOLOGIA DO FLUXOGRAMA SÍMBOLO
NOME E FUNÇÃO
Início
NOME = TERMINAL FUNÇÃO = Indica INÍCIO ou FIM de um processamento
Início Pegar a latinha
NOME = PROCESSAMENTO FUNÇÃO = Definição de variáveis ou processamentos em geral (Cálculos) Abrir a tampa
NOME = ENTRADA MANUAL FUNÇÃO = Entrada de dados via teclado, idêntico ao comando LEIA
NOME = DECISÃO FUNÇÃO = Decisão a ser tomada, retornando verdadeiro ou falso, idêntico ao comando SE NOME = CONECTOR FUNÇÃO = Desvia o fluxo para uma outra página, sendo interligados pelo conector
Remover o lacre
Eliminar o lacre
Segurar o lacre
Posicionar a lata na boca
Voltar a lata na posição original
Pegar o refrigerante
Inclinar a lata
Ingerir o líquido
Tomar o refrigerante
NOME = DISPLAY FUNÇÃO = Saída de Dados, mostra um texto e/ou variável na tela, idêntico ao comando ESCREVA NOME = DOCUMENTO FUNÇÃO = Saída de Dados, envia um texto e/ou variável para a impressora, usado em relatórios. Idêntico ao comando IMPRIMA
Fi m
Existemmuitossoftwaresdestinadosàconstruçãodeuxogramas,masépossívelfazê-lostambémcomouso comousodoMicrosoftWor doMicrosoftWord®.Osexemp d®.Osexemplosdessematerial losdessematerial foramelaboradospeloMicrosoftVisio®.
Figu 1 Fluxograma dos passos lógicos.
Psedcódig Osalgoritmossãodesenvolvidosemumalinguagemdenominadapseudocódigoou,comopreferemalgunsautores,portuguêsestruturado.Podemser criadossemoformalismodaslinguagens criado ssemoformalismodaslinguagensdeprogramaçã deprogramação,masobedecema o,masobedecema umaregrabásicadeestruturação:cabeçalho,declaraçãoeinstruções,conformeoseguintemodelo:
NOME = ENTRADA/SAÍDA FUNÇÃO = Leitura de gravação de arquivos
Programa nome_do_programa
Título do Algoritmo
Declare {declaração de variáveis}
NOME = SETA FUNÇÃO = Indica a direção do fluxo
Início {instruções e comandos}
NOME = LOOP FUNÇÃO = Realiza o controle de loop
Declarações de variáveis Comandos e instruções ordenados de forma lógica
Fim
25
24
InFoRmátICa 4
CaPítulo 1
Umalgoritmodevetercomocaracterísticaumnúmeronitodepassos,descritosdeformaprecisaequepossamserexecutadosemumdeterminadotempo.Podepermitirzerooumaisentradasdedadosegerarsaídasdedados renados.Paraconstruirumalgoritmo,éprecisousarinformaçõesclarase objetivas,geralmentecompostasdeumverbooudeumafrasedireta.
1.2. tips de dds Amanipulaçãodedadosemumalgoritmo–ouatémesmonaslinguagens deprogramação–sóépossívelcombaseemalgumasregrasfundamentais paraadefiniçãodostipos paraadefiniç ãodostiposdedados.Éprecisodife dedados.Éprecisodiferenc renciarumdadocom iarumdadocom númerosououtrostiposdecaracteres.
desuavariávelouconstanteenãoutilizeespaçoembrancooucaracteresespeciais, comexceçãodo underline (_).Exemplos: (_).Exemplos: nome
ß
“Joãozinho”
idade
ß
0
minha_idade
ß
15
pag_nal
ß
“R$ 1.479,00”
Nopseudocódigo(gura2),asconstantesouvariáveisdeverãoestarrelacionadascomosseusrespectivostiposdedados:
• nérics ieirs Essetipodedadoérepresentadopornúmerosnãofracionadospositivosounegativos,como:10,50,-56 gativos,como:1 0,50,-56,-1.000etc. ,-1.000etc.
Figu 2 Programa variáveis
• nérics fles
Declare
Sãorepresentadospornúmerosfracionad Sãorepresentadospornúm erosfracionadospositivos ospositivosounegativos, ounegativos,porexemplo: porexemplo: 10.5,-45.78,178.67etc.
nome como caractere idade como inteiro
• Crceres ieris
Início
nome como caractere idade como inteiro salário como flutuante
salário como utuante
Éomaiorconjuntodedados.Sãorepresentadosporletras,números,símboloseespaçoembranco,sempreentreaspas.Exemplo:“cadeira”,“100”, “R$10.00”,“11h00”etc.
Início nome ß “Joãozinho”
1.3. Cses e vriáveis
• aribiçã e decrçã Atribui Atri buir r um val valor or qua qualqu lquer er par para a uma con constan stante te ou uma var variáv iável el req requer uer ousodosinalde“ß”ou“=”.Issoquerdizerqueovalornafrentedosinal ser será á arm armaze azenad nado o no ele elemen mento to ant anteri erior or ao sin sinal al de atr atrib ibuiç uição ão.. Ve Veja: ja: idade ß 10
nome ß “Joãozinho” idade ß 15 salário ß 1500
idade ß 15
Asconstantessãoexpressõesquerecebemumvalorqualquerquenãoserá modificadoduranteoprocessodeexecuçãodoalgoritmo.Jáasvariáveis terãoumvalorpassíveldemodificaçãoaqualquermomento.Umexemplo deconstanteéovalordePi(3,14).Eumavariávelquetodosconhecemos bempodeseratemperaturadodia,registradadehoraemhora.
nome ß “Joãozinho”
Estrutura de pseudocódigo.
pi ß 3.14
Independentementedotipodedadoadotado–caracteresvariados(“Joãozinho”), númerosinteiros(10)ouutuantes(3.14)–,oprocessodeatribuiçãoéomesmo. Masadeclaraçãorequercuidado.Porisso,procureescolheronomedavariávelde acordocomotipodedadoqueserárecepcionado,iniciesemprecomletrasonome
salário ß 1.500,00
Fim
Fim
1.4. operdres Osoperadoressãoutilizadospelospseudocódigos.Omesmoacontececomas linguagensdeprogramação,cujafunçãoérealizarasdiferentesoperaçõesde aritméticaedelógicaemumambientecom aritméticaedelógicaem umambientecomputacional. putacional.
• ariéics Essegrupotemcomoresponsabilidade Essegrupotemcomoresponsabil idaderealizaras realizaras opera operaçõesaritm çõesaritméticas éticas (tabela2)deumpseudocódi (tab ela2)deumpseudocódigo.Asoperaçõ go.Asoperaçõesserãorealizad esserãorealizadasdeacordo asdeacordo comaprioridade,ouseja,parênteses,potência,multiplicação,divisãoe, porúltimo,somaesubtração.
InFoRmátICa 4
CaPítulo 1
Umalgoritmodevetercomocaracterísticaumnúmeronitodepassos,descritosdeformaprecisaequepossamserexecutadosemumdeterminadotempo.Podepermitirzerooumaisentradasdedadosegerarsaídasdedados renados.Paraconstruirumalgoritmo,éprecisousarinformaçõesclarase objetivas,geralmentecompostasdeumverbooudeumafrasedireta.
1.2. tips de dds Amanipulaçãodedadosemumalgoritmo–ouatémesmonaslinguagens deprogramação–sóépossívelcombaseemalgumasregrasfundamentais paraadefiniçãodostipos paraadefiniç ãodostiposdedados.Éprecisodife dedados.Éprecisodiferenc renciarumdadocom iarumdadocom númerosououtrostiposdecaracteres.
desuavariávelouconstanteenãoutilizeespaçoembrancooucaracteresespeciais, comexceçãodo underline (_).Exemplos: (_).Exemplos: nome
ß
“Joãozinho”
idade
ß
0
minha_idade
ß
15
pag_nal
ß
“R$ 1.479,00”
Nopseudocódigo(gura2),asconstantesouvariáveisdeverãoestarrelacionadascomosseusrespectivostiposdedados:
• nérics ieirs Essetipodedadoérepresentadopornúmerosnãofracionadospositivosounegativos,como:10,50,-56 gativos,como:1 0,50,-56,-1.000etc. ,-1.000etc.
Figu 2 Programa variáveis
Estrutura de pseudocódigo.
• nérics fles
Declare
Sãorepresentadospornúmerosfracionad Sãorepresentadospornúm erosfracionadospositivos ospositivosounegativos, ounegativos,porexemplo: porexemplo: 10.5,-45.78,178.67etc.
nome como caractere
Início
nome como caractere idade como inteiro salário como flutuante
idade como inteiro
• Crceres ieris
salário como utuante
Éomaiorconjuntodedados.Sãorepresentadosporletras,números,símboloseespaçoembranco,sempreentreaspas.Exemplo:“cadeira”,“100”, “R$10.00”,“11h00”etc.
Início nome ß “Joãozinho”
1.3. Cses e vriáveis
idade ß 15
Asconstantessãoexpressõesquerecebemumvalorqualquerquenãoserá modificadoduranteoprocessodeexecuçãodoalgoritmo.Jáasvariáveis terãoumvalorpassíveldemodificaçãoaqualquermomento.Umexemplo deconstanteéovalordePi(3,14).Eumavariávelquetodosconhecemos bempodeseratemperaturadodia,registradadehoraemhora.
• aribiçã e decrçã Atribui Atri buir r um val valor or qua qualqu lquer er par para a uma con constan stante te ou uma var variáv iável el req requer uer ousodosinalde“ß”ou“=”.Issoquerdizerqueovalornafrentedosinal ser será á arm armaze azenad nado o no ele elemen mento to ant anteri erior or ao sin sinal al de atr atrib ibuiç uição ão.. Ve Veja: ja: nome ß “Joãozinho”
idade ß 10
nome ß “Joãozinho” idade ß 15 salário ß 1500
pi ß 3.14
Independentementedotipodedadoadotado–caracteresvariados(“Joãozinho”), númerosinteiros(10)ouutuantes(3.14)–,oprocessodeatribuiçãoéomesmo. Masadeclaraçãorequercuidado.Porisso,procureescolheronomedavariávelde acordocomotipodedadoqueserárecepcionado,iniciesemprecomletrasonome
Fim
salário ß 1.500,00 Fim
1.4. operdres Osoperadoressãoutilizadospelospseudocódigos.Omesmoacontececomas linguagensdeprogramação,cujafunçãoérealizarasdiferentesoperaçõesde aritméticaedelógicaemumambientecom aritméticaedelógicaem umambientecomputacional. putacional.
• ariéics Essegrupotemcomoresponsabilidade Essegrupotemcomoresponsabil idaderealizaras realizaras opera operaçõesaritm çõesaritméticas éticas (tabela2)deumpseudocódi (tab ela2)deumpseudocódigo.Asoperaçõ go.Asoperaçõesserãorealizad esserãorealizadasdeacordo asdeacordo comaprioridade,ouseja,parênteses,potência,multiplicação,divisãoe, porúltimo,somaesubtração. 27
26
InFoRmátICa 4
CaPítulo 1
tb 2
OPERADORES ARITMÉTICOS +
adiçã de úers fles ieirs
+
Cceçã de vres ieris (crceres)
-
Sbrçã de úers fles ieirs
*
mipicçã de úers fles ieirs
/
Divisã de úers fles e ieirs
**
Pêci de úers fles e ieirs
Paracompreenderoprocessológicodedados,observeastabelasabaixo,mostrandoosvaloresoriginaiseosresultadosadquiridosapartirdosoperadores lógicos.EssetipodequadroéconhecidocomoTa lógicos.Essetipodequadroéconhecid ocomoTabelaVerdade( belaVerdade(tabela5). tabela5). tb 5
NÃO // NOT Valor Entrada 01 Verddeir Fs
Resultado Fs Verddeir
ch ave 1
E // AND
• Reciis Osoperadoresrelacionais(tabela3)permitemaexecuçãodetestesentreconstantesevariáveis.
Valor Entrada 01 Verddeir Verddeir Fs Fs
Valor Entrada 02 Verddeir Fs Verddeir Fs
Valor Entrada 01 Verddeir Verddeir Fs Fs
Valor Entrada 02 Verddeir Fs Verddeir Fs
tb 3
OPERADORES RELACIONAIS =
Ig
<>
Diferee
>
mir
<
mer
<=
mer ig
>=
mir ig
• lógics e tbe Verdde Osoperadoreslógicos(tabela4 Osoperadoreslógicos( tabela4)executam )executamfunçõesespeciaisdentro funçõesespeciaisdentrodospseudodospseudocódigos,quandorelacionadosaos códigos,quandor elacionadosaostestescondicionaisouaou testescondicionaisouaoutrosvaloreslógic trosvaloreslógicos. os.
c have 2
Lógica E
Resultado Verddeir Fs Fs Fs
OU // OR Resultado Verddeir Verddeir Verddeir Fs
bateria
lógica ou
Simulação dos operadores “E” e “OU”
1.5. Cds Umaaçãoparaocomputadorédenidacomumcomandoqueexecutadeterminadaoperação(mostrarosdadoserealizarumcálculo,porexemplo).Essas açõesserãorepresentadasnospseudocódigospormeiodeexpressõespredenidasnalógicacomputacional.
• Cd Escrev() tb 4
OPERADORES LÓGICOS
Éutilizadoparamostrarasaídadedados(gura3),ouseja,quandoumamensagemouresultadodeumaoperaçãodeveráserexibidaaousuário.Paraque sejapossívelavisualizaçãododado,algunscuidadossãofundamentais:asexpressõesdevemaparecerentreaspas,excetoasvariáveisevalores(inteirosou utuantes).
nã / n
Ivere resd de expressã
E / ad
Rer verddeir cs ds s
Escreva(“bom dia”)
cdições rere verddeir
valor ß 10
Rer verddeir qd ds cdições rer verddeir
Escreva(valor)
o / or
Escreva(56)
Figu 3 Comando Escreva(). Mensagem ou variável
lâmpada
InFoRmátICa 4
CaPítulo 1
tb 2
OPERADORES ARITMÉTICOS +
adiçã de úers fles ieirs
+
Cceçã de vres ieris (crceres)
-
Sbrçã de úers fles ieirs
*
mipicçã de úers fles ieirs
/
Divisã de úers fles e ieirs
**
Pêci de úers fles e ieirs
Paracompreenderoprocessológicodedados,observeastabelasabaixo,mostrandoosvaloresoriginaiseosresultadosadquiridosapartirdosoperadores lógicos.EssetipodequadroéconhecidocomoTa lógicos.Essetipodequadroéconhecid ocomoTabelaVerdade( belaVerdade(tabela5). tabela5). tb 5
NÃO // NOT Valor Entrada 01 Verddeir Fs
Resultado Fs Verddeir
ch ave 1
E // AND
• Reciis Osoperadoresrelacionais(tabela3)permitemaexecuçãodetestesentreconstantesevariáveis.
Valor Entrada 01 Verddeir Verddeir Fs Fs
Valor Entrada 02 Verddeir Fs Verddeir Fs
Valor Entrada 01 Verddeir Verddeir Fs Fs
Valor Entrada 02 Verddeir Fs Verddeir Fs
tb 3
OPERADORES RELACIONAIS =
Ig
<>
Diferee
>
mir
<
mer
<=
mer ig
>=
mir ig
c have 2
Lógica E
Resultado Verddeir Fs Fs Fs
OU // OR Resultado Verddeir Verddeir Verddeir Fs
lâmpada
bateria
lógica ou
Simulação dos operadores “E” e “OU”
1.5. Cds
• lógics e tbe Verdde Osoperadoreslógicos(tabela4 Osoperadoreslógicos( tabela4)executam )executamfunçõesespeciaisdentro funçõesespeciaisdentrodospseudodospseudocódigos,quandorelacionadosaos códigos,quandor elacionadosaostestescondicionaisouaou testescondicionaisouaoutrosvaloreslógic trosvaloreslógicos. os.
Umaaçãoparaocomputadorédenidacomumcomandoqueexecutadeterminadaoperação(mostrarosdadoserealizarumcálculo,porexemplo).Essas açõesserãorepresentadasnospseudocódigospormeiodeexpressõespredenidasnalógicacomputacional.
• Cd Escrev() tb 4
OPERADORES LÓGICOS
Éutilizadoparamostrarasaídadedados(gura3),ouseja,quandoumamensagemouresultadodeumaoperaçãodeveráserexibidaaousuário.Paraque sejapossívelavisualizaçãododado,algunscuidadossãofundamentais:asexpressõesdevemaparecerentreaspas,excetoasvariáveisevalores(inteirosou utuantes).
nã / n
Ivere resd de expressã
E / ad
Rer verddeir cs ds s
Escreva(“bom dia”)
cdições rere verddeir
valor ß 10
o / or
Rer verddeir qd ds cdições rer verddeir
Figu 3 Comando Escreva(). Mensagem ou variável
Escreva(valor) Escreva(56)
29
28
InFoRmátICa 4
CaPítulo 1
Opseudocódigoaseguirrepresentaumexemplomaiscompleto,assimcomoo uxograma,nasequência(gura4): Programa exemplo_escreva
• Cd lei() AocontráriodocomandoEscreva(),oLeia()permiteainserçãodedadospela interaçãocomousuário.Elesserãoarmazenadosemvariáveisdevidamentedenidas(gura5). Figu 5
Declare
Entrada de Dados.
Leia(nome)
nome como caractere
Leia(nota1)
média, nota1, nota2 como utuante
Entrada de dados
Leia(nota2)
Inicio
Leia(temp)
nome ß “Fulaninho” nota1 ß 10.0
Aorealizarumaentradadedados,oidealéqueousuáriosejanoticadosobre otipodeinformaçãoquedeveráserinserida.Vejacomo:
nota2 ß 2.0 Programa exemplo_leia
media ß (nota1 + nota2)/2
Declare
Escreva(“Sua nota nal é:”)
nome como caractere
Escreva(média)
média, nota1, nota2 como utuante
Fim
Início Escreva(“calculando a média”)
Figu 4 Fluxograma Escreva.
Escreva(“Qual o seu nome?”) Início
Leia(nome) Escreva(“Qual a sua nota 1?”)
nome como caractere média, nota1, nota2 como flutuante
Fim
Leia(nota1) Escreva(“Qual a sua nota 2?”)
nome ß “Fulaninho” nota1 ß 10.0 nota2 ß 2.0
média
Leia(nota2) media ß (nota1 + nota2)/2 Escreva(“Sua média nal é:”)
média ß (nota1+nota2)/2
“Sua nota final é”
Escreva(media) Fim
InFoRmátICa 4
CaPítulo 1
Opseudocódigoaseguirrepresentaumexemplomaiscompleto,assimcomoo uxograma,nasequência(gura4): Programa exemplo_escreva
• Cd lei() AocontráriodocomandoEscreva(),oLeia()permiteainserçãodedadospela interaçãocomousuário.Elesserãoarmazenadosemvariáveisdevidamentedenidas(gura5). Figu 5
Declare
Entrada de Dados.
Leia(nome)
nome como caractere
Leia(nota1)
média, nota1, nota2 como utuante
Entrada de dados
Leia(nota2)
Inicio
Leia(temp)
nome ß “Fulaninho” nota1 ß 10.0
Aorealizarumaentradadedados,oidealéqueousuáriosejanoticadosobre otipodeinformaçãoquedeveráserinserida.Vejacomo:
nota2 ß 2.0 Programa exemplo_leia
media ß (nota1 + nota2)/2
Declare
Escreva(“Sua nota nal é:”)
nome como caractere
Escreva(média)
média, nota1, nota2 como utuante
Fim
Início Escreva(“calculando a média”)
Figu 4 Fluxograma Escreva.
Escreva(“Qual o seu nome?”) Início
Leia(nome) Escreva(“Qual a sua nota 1?”)
nome como caractere média, nota1, nota2 como flutuante
Fim
Leia(nota1) Escreva(“Qual a sua nota 2?”)
nome ß “Fulaninho” nota1 ß 10.0 nota2 ß 2.0
Leia(nota2)
média
media ß (nota1 + nota2)/2 Escreva(“Sua média nal é:”) “Sua nota final é”
média ß (nota1+nota2)/2
Escreva(media) Fim 31
30
InFoRmátICa 4
CaPítulo 1
Observenagura6,amesmarepresentação,noformatodeuxograma:
Nopróximoexemplo,paraestabeleceracondiçãovamosutilizarosoperadores lógicosjávistos. Se(média>=7.00) Então
Início
nome como caractere média, nota1, nota2 como flutuante
“Qual a sua nota 1”
nota1
nome
“Qual a sua nota 2”
Escreva(“Você está aprovado!!!! ”)
média
Fim-Se
• Esrr de decisã – Se...Seã...Fi-Se “Sua média final é”
Fim
PodemosorganizarocomandoSe(),para Podemosorganizarocoman doSe(),paracriardesvioscondicionaisd criardesvioscondicionaisdeverdadeieverdadeirooufalsonomesmoteste(gura8): Figu 8 Se...Senão...Fim-Se.
Se(condição) Então
{comando(s) condição verdadeira} “Calculando a média”
“Qual o seu nome?”
nota2
média = (nota1+nota2)/2
Senão
{comando(s) condição falsa} Fim-Se
Figu 6 Fluxograma Leia.
• Esrr de decisã – Se...Fi-Se Osalgoritmos,assimcomoaslinguagensdeprogramação,executamasatividadesdeformasequenc dadesdeform asequencial.Mas,àsvezes,devem ial.Mas,àsvezes,devemosdeniralguns osdeniralgunsdesviosde desviosde acordocomascondiçõesestabelecidasnoprocessodeexecuçãodoalgoritmo conformeainterferênciadousuário.Paraqueissoocorra,éprecisoexecutar ocomandoSe(),quepermiterealizardesvioscondicionaiscombaseemtestes lógicos.Aestruturadosalgoritmosécompostaporumtestecondicionalepor umcomandoouconjuntodecoman umcomandooucon juntodecomandosaseremexecutadosapartirdesseteste, dosaseremexecutadosapartirdesseteste, massomentequandooresultadoforverdadeiro(gura7).
Figu 7 Se...Fim-Se.
Não
Comocariaarepetiçãodotestecomavariávelmédia. Se(media>=7.00) Então
Se(condição) Então
Escreva(“Você está aprovado!!!! ”)
{comando(s)} Fim-Se
Senão
Sim
Escreva(“Você está reprovado!!!! ”) Fim-Se
Sim
InFoRmátICa 4
CaPítulo 1
Observenagura6,amesmarepresentação,noformatodeuxograma:
Nopróximoexemplo,paraestabeleceracondiçãovamosutilizarosoperadores lógicosjávistos. Se(média>=7.00) Então
Início
nome como caractere média, nota1, nota2 como flutuante
“Qual a sua nota 1”
nota1
nome
“Qual a sua nota 2”
Escreva(“Você está aprovado!!!! ”)
média
Fim-Se
• Esrr de decisã – Se...Seã...Fi-Se “Sua média final é”
Fim
PodemosorganizarocomandoSe(),para Podemosorganizarocoman doSe(),paracriardesvioscondicionaisd criardesvioscondicionaisdeverdadeieverdadeirooufalsonomesmoteste(gura8): Figu 8 Se...Senão...Fim-Se.
Se(condição) Então
{comando(s) condição verdadeira} “Calculando a média”
“Qual o seu nome?”
média =
nota2
(nota1+nota2)/2
Senão
{comando(s) condição falsa} Fim-Se
Figu 6 Fluxograma Leia.
• Esrr de decisã – Se...Fi-Se Osalgoritmos,assimcomoaslinguagensdeprogramação,executamasatividadesdeformasequenc dadesdeform asequencial.Mas,àsvezes,devem ial.Mas,àsvezes,devemosdeniralguns osdeniralgunsdesviosde desviosde acordocomascondiçõesestabelecidasnoprocessodeexecuçãodoalgoritmo conformeainterferênciadousuário.Paraqueissoocorra,éprecisoexecutar ocomandoSe(),quepermiterealizardesvioscondicionaiscombaseemtestes lógicos.Aestruturadosalgoritmosécompostaporumtestecondicionalepor umcomandoouconjuntodecoman umcomandooucon juntodecomandosaseremexecutadosapartirdesseteste, dosaseremexecutadosapartirdesseteste, massomentequandooresultadoforverdadeiro(gura7).
Figu 7 Se...Fim-Se.
Não
Sim
Comocariaarepetiçãodotestecomavariávelmédia. Se(media>=7.00) Então
Se(condição) Então
Escreva(“Você está aprovado!!!! ”)
{comando(s)}
Senão
Sim
Fim-Se
Escreva(“Você está reprovado!!!! ”) Fim-Se
33
32
InFoRmátICa 4
CaPítulo 1
Figu 9
Vamosorganizartodoopseudocódigo,apresentando-o,também,noformato deuxograma(gura9).
Exemplo de teste. Início
nome como caractere média, nota1, nota2 como utuante
“Calculando a média”
“Qual o seu nome?”
“Qual a sua nota 02?”
nota1
“Qual a sua nota 01?”
nome
nota2
(nota1 + nota2)/2
“Sua média nal é”
média
Programaexemplo_teste Declare
nome como caractere media, nota1, nota2 como utuante
média =
Início
“Aprovado”
Escreva(“calculando a média”)
Fim
“Fim do programa”
E sc scre va va(“Digite o o se seu prime iro no nome .”)
Sim
média >=7.00 “Reprovado” Não
Leia(nome) Escreva(“Qual a sua nota 01?”)
• Esrr de decisã – Seecie Cs...Seã Cs...Seã...Fi-Seecie ...Fi-Seecie
Leia(nota1) Escreva(“Qual a sua nota 02?”) Leia(nota2)
Emalgunsmomentos,haveránecessidadedetestaramesmavariáveldiversas vezes,comoacontecenomenudeopções.Paraisso,utilizamosoco nomenudeopções.Paraisso,utilizamosocomando“Semando“SelecioneCaso”daseguinteforma(gura10):
média ß(nota1+nota2)/2
Selecione Caso{variável}
Escreva(“Sua nota nal é:”)
Casocondição01
Escreva(média)
Selecione Caso.
{comando(s)}
Se(media>=7.00) Então
Casocondição02
Escreva(“Aprovado”)
{comando(s)} Casocondição03
Senão
Escreva(“Reprovado”) Fim-Se
Escreva(“Fim de programa”) Fim
Figu 10
Sim Não
{comando(s)} Senão
Sim
{comando(s)} Fim-Selecione
InFoRmátICa 4
CaPítulo 1
Figu 9
Vamosorganizartodoopseudocódigo,apresentando-o,também,noformato deuxograma(gura9).
Exemplo de teste. Início
nome como caractere média, nota1, nota2 como utuante
“Calculando a média”
“Qual o seu nome?”
“Qual a sua nota 02?”
nota1
“Qual a sua nota 01?”
nome
nota2
(nota1 + nota2)/2
“Sua média nal é”
média
Programaexemplo_teste Declare
nome como caractere media, nota1, nota2 como utuante
média =
Início
Sim
“Aprovado” “Fim do programa”
Fim
Escreva(“calculando a média”) E sc scre va va(“Digite o o se seu prime iro no nome .”)
média >=7.00 “Reprovado” Não
Leia(nome) Escreva(“Qual a sua nota 01?”)
• Esrr de decisã – Seecie Cs...Seã Cs...Seã...Fi-Seecie ...Fi-Seecie
Leia(nota1) Escreva(“Qual a sua nota 02?”)
Emalgunsmomentos,haveránecessidadedetestaramesmavariáveldiversas vezes,comoacontecenomenudeopções.Paraisso,utilizamosoco nomenudeopções.Paraisso,utilizamosocomando“Semando“SelecioneCaso”daseguinteforma(gura10):
Leia(nota2) média ß(nota1+nota2)/2
Selecione Caso{variável}
Escreva(“Sua nota nal é:”)
Casocondição01
Escreva(média)
Figu 10 Selecione Caso.
{comando(s)}
Se(media>=7.00) Então
Casocondição02
Escreva(“Aprovado”)
{comando(s)}
Sim
Casocondição03
Senão
Escreva(“Reprovado”)
Não
{comando(s)}
Fim-Se
Senão
Escreva(“Fim de programa”)
Sim
{comando(s)}
Fim
Fim-Selecione
35
34
InFoRmátICa 4
CaPítulo 1
Éprecisodescobrir,emdeterminadasituação,seousuárioescolheuosnúm Éprecisodescobrir,emdeterminadasi tuação,seousuárioescolheuosnúmeros eros 1,2ou3.Qualqueroutrodiferente,deverágeraramensagem“númeroinválido”(gura11):
Leia(número)
• Esrr de repeiçã – Pr...Fi-Pr Alémdosdesviossequenciais,épossívelcriardesviosem loop,ouseja,repetir trechosdoalgoritmosobredeterminadacondiçãoecontrolaraformacomque osloops serãoexecutados.OcomandoP serãoexecutados.OcomandoPara...Fim-P ara...Fim-Parapermiteq arapermitequeumavariáv ueumavariável el realizeacontagemdonúmerodeloopsaexecutar realizeacontagemdonúm erodeloopsaexecutar,conformeaindi ,conformeaindicaçãoinicial caçãoinicial enaldessacontagem(gura12),etambémidenti enaldessacontagem(gura12 ),etambémidentiqueoformatoem queoformatoemqueessa queessa tarefaserárealizada.
Selecione Casonúmero
Figu 12 Para
=AtéPassoFaça
Caso1
{comando(s)}
Escreva(“Você escolheu o número 01”) Fim-Para
Caso2
Cont = Inicial até Final
Escreva(“Você escolheu o número 02”) Caso3
Escreva(“Você escolheu o número 03”)
Comando(s)
Senão
Escreva(“Número inválido”) Fim-Selecione
Algunsexemplos:
Figu 11
Parax=1Até5Faça
Selecione caso.
Escr Es crev eva( a(x) x)/ // /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :11,2 ,2,3 ,3,4 ,4e e5 5.. Fim-Para
Paranum=3Até6Faça Não
número
01
Não
Fim-Para
03
02 Sim
Escr Es crev eva( a(nu num m) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:3 3,4 ,4,5 ,5e e6 6..
Não
Sim
Sim
Paravlr=0Até10Passo2Faça
Escr Es crev eva( a(vl vlrr) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :0, 0,2, 2,4, 4,6, 6,8 8ee10. “Você escolheu o número 01”
“Você escolheu o número 02”
“Você escolheu o número 03”
“Número inválido”
Fim-Para
Paracont=3Até0Passo-1Faça
Escr Es crev eva( a(co connt) t)/ // /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:3 3,2 ,2,,1 1e e0. 0. Fim-Para
Para...Fim-Para.
InFoRmátICa 4
CaPítulo 1
Éprecisodescobrir,emdeterminadasituação,seousuárioescolheuosnúm Éprecisodescobrir,emdeterminadasi tuação,seousuárioescolheuosnúmeros eros 1,2ou3.Qualqueroutrodiferente,deverágeraramensagem“númeroinválido”(gura11):
Leia(número)
• Esrr de repeiçã – Pr...Fi-Pr Alémdosdesviossequenciais,épossívelcriardesviosem loop,ouseja,repetir trechosdoalgoritmosobredeterminadacondiçãoecontrolaraformacomque osloops serãoexecutados.OcomandoP serãoexecutados.OcomandoPara...Fim-P ara...Fim-Parapermiteq arapermitequeumavariáv ueumavariável el realizeacontagemdonúmerodeloopsaexecutar realizeacontagemdonúm erodeloopsaexecutar,conformeaindi ,conformeaindicaçãoinicial caçãoinicial enaldessacontagem(gura12),etambémidenti enaldessacontagem(gura12 ),etambémidentiqueoformatoem queoformatoemqueessa queessa tarefaserárealizada.
Selecione Casonúmero
Figu 12 Para=AtéPassoFaça
Caso1
Para...Fim-Para.
{comando(s)}
Escreva(“Você escolheu o número 01”) Fim-Para
Caso2
Cont = Inicial até Final
Escreva(“Você escolheu o número 02”) Caso3
Escreva(“Você escolheu o número 03”)
Comando(s)
Senão
Escreva(“Número inválido”) Fim-Selecione
Algunsexemplos:
Figu 11
Parax=1Até5Faça
Selecione caso.
Escr Es crev eva( a(x) x)/ // /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :11,2 ,2,3 ,3,4 ,4e e5 5.. Fim-Para
Paranum=3Até6Faça Não
número
Não
01
Fim-Para
03
02 Sim
Escr Es crev eva( a(nu num m) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:3 3,4 ,4,5 ,5e e6 6..
Não
Sim
Sim
Paravlr=0Até10Passo2Faça
Escr Es crev eva( a(vl vlrr) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :0, 0,2, 2,4, 4,6, 6,8 8ee10. “Você escolheu o número 01”
“Você escolheu o número 02”
“Você escolheu o número 03”
“Número inválido”
Fim-Para
Paracont=3Até0Passo-1Faça
Escr Es crev eva( a(co connt) t)/ // /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:3 3,2 ,2,,1 1e e0. 0. Fim-Para
37
36
InFoRmátICa 4
CaPítulo 1
• Esrr de repeiçã – Eq...Fi-Eq
• Esrr de repeiçã – Repi...aé qe
AssimcomoocomandoPara...Fim-Parapermiterealizarloop,ainstruçãoEnquanto...Fim-Enquantoexecutaomesmoprocesso(gura13).Masépreciso lembrarqueessecomandonãorealizaacontagemaut lembrarqueessecomando nãorealizaacontagemautomaticament omaticamente.Porisso,é e.Porisso,é necessárioimplementarumcontadordepassos.
OcomandoRepitatemamesmanalidadedocomando Enquanto,quando oassuntoéfuncionalidade.Aúnicadiferençaéalocalizaçãodacondiçãode teste,queocorrenonaldacadeiadeloop(gura14),garantindoaexecução doscomandosnomínimoumavez.
Figu 13
Enquanto(condição) Faça
Enuanto... Fim-Enuanto.
Figu 14
Repita
{comando(s)}
Repita...Fim-Repita.
{comando(s)} Até que(condição)
Fim-Enquanto Condição
comando(s)
Comando(s) Repita (condição)
Vamosrepetirosexemplosdainstrução Para...Fim-Para,masagoracomo comandoEnquanto. xß1 xß1
Repita
Enquanto(x<=5)Faça
Escrev Escr eva( a(x) x)/ // /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:1 1,2 ,2,3 ,3,4 ,4e e5 5. . x ßx+1
Escrev Escr eva( a(x) x)/ // /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:1 1,2 ,2,3 ,3,4 ,4e e5 5.. x ßx+1 Até que(x<=5)
Fim-Enquanto
num ß3
num ß3
Enquanto(num<=6)Faça
Repita
Escrev Escr eva( a(nnum um) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :3, 3,4,5 4 ,5e e6. 6. num ßnum+1 Fim-Enquanto
Escrev Escr eva( a(nnum um) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :3, 3,4,5 4 ,5e e6. 6. num ßnum+1 Até que(x<=6)
vlr ß0
Repita
vlr ß0 Enquanto(vlr<=10)Faça
Escrev Escr eva( a(vl vlrr) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:0 0,2 ,2,4 ,4,6 ,6,8 ,8e e1 10. 0. vlr ßvlr+2
Escrev Escr eva( a(vl vlrr) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:0 0,2 ,2,4 ,4,6 ,6,8 ,8e e1 10. 0. vlr =vlr+2 Até que(vlr<=10)
Fim-Enquanto
cont ß3
cont ß3
Enquanto(cont>=0) Faça
Repita
Escrev Escr eva( a(co cont nt) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :3, 3,2, 2,1 1e e0. 0. cont ßcont-1 Fim-Enquanto
Escrev Escr eva( a(co cont nt) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :3, 3,2, 2,1 1e e0. 0. cont ßcont-1 Até que(cont>=0)
InFoRmátICa 4
CaPítulo 1
• Esrr de repeiçã – Eq...Fi-Eq
• Esrr de repeiçã – Repi...aé qe
AssimcomoocomandoPara...Fim-Parapermiterealizarloop,ainstruçãoEnquanto...Fim-Enquantoexecutaomesmoprocesso(gura13).Masépreciso lembrarqueessecomandonãorealizaacontagemaut lembrarqueessecomando nãorealizaacontagemautomaticament omaticamente.Porisso,é e.Porisso,é necessárioimplementarumcontadordepassos.
OcomandoRepitatemamesmanalidadedocomando Enquanto,quando oassuntoéfuncionalidade.Aúnicadiferençaéalocalizaçãodacondiçãode teste,queocorrenonaldacadeiadeloop(gura14),garantindoaexecução doscomandosnomínimoumavez.
Figu 13
Enquanto(condição) Faça
Enuanto... Fim-Enuanto.
Figu 14
Repita
{comando(s)}
Repita...Fim-Repita.
{comando(s)} Até que(condição)
Fim-Enquanto Condição
comando(s)
Comando(s) Repita (condição)
Vamosrepetirosexemplosdainstrução Para...Fim-Para,masagoracomo comandoEnquanto. xß1 xß1
Repita
Enquanto(x<=5)Faça
Escrev Escr eva( a(x) x)/ // /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:1 1,2 ,2,3 ,3,4 ,4e e5 5. . x ßx+1
Escrev Escr eva( a(x) x)/ // /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:1 1,2 ,2,3 ,3,4 ,4e e5 5.. x ßx+1 Até que(x<=5)
Fim-Enquanto
num ß3
num ß3
Enquanto(num<=6)Faça
Repita
Escrev Escr eva( a(nnum um) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :3, 3,4,5 4 ,5e e6. 6. num ßnum+1 Fim-Enquanto
Escrev Escr eva( a(nnum um) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :3, 3,4,5 4 ,5e e6. 6. num ßnum+1 Até que(x<=6)
vlr ß0
Repita
vlr ß0 Enquanto(vlr<=10)Faça
Escrev Escr eva( a(vl vlrr) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:0 0,2 ,2,4 ,4,6 ,6,8 ,8e e1 10. 0. vlr ßvlr+2
Escrev Escr eva( a(vl vlrr) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snú núme mero ros: s:0 0,2 ,2,4 ,4,6 ,6,8 ,8e e1 10. 0. vlr =vlr+2 Até que(vlr<=10)
Fim-Enquanto
cont ß3
cont ß3
Enquanto(cont>=0) Faça
Repita
Escrev Escr eva( a(co cont nt) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :3, 3,2, 2,1 1e e0. 0. cont ßcont-1 Fim-Enquanto
Escrev Escr eva( a(co cont nt) )/// /Se Serã rão ovi visu sual aliz izad ados oso os snnúm úmer eros os: :3, 3,2, 2,1 1e e0. 0. cont ßcont-1 Até que(cont>=0) 39
38
InFoRmátICa 4
CaPítulo 1
1.6. Ver Denidotambémcomomatrizunidimensional,umvetor( Denidotambémcomomatrizunidimensi onal,umvetor(tabelas6e7)éuma tabelas6e7)éuma variávelquepossuiváriosdados,acessadospormeiodeumaposiçãorelativa, seguindoamesmaregradaconcepçãoeatribuiçãodasvariáveis.
Programavetores Declare
vet como co conjunto[1..5] de iinte iro Início
vet[1] ß90 vet[2] ß1 vet[3] ß100 vet[4] ß4-1 vet[5] ß21
tb 6 Vetor de Letras.
1
2
3
4
5
6
7
8
9
10
A
H
M
B
R
J
G
Q
S
P
Fim
Pararealizaroacessoàposiçãodeumvetor,éprecisoidenticaraposiçãoque estáentreossinaisde[],logoapósonomedovetor: tb 7 Vetor de Números.
Escreva(vet[3])
1
2
3
4
5
6
7
8
9
10
10
56
-4
60
2
6
99
3
1
-10
Leia(vet[2])
• trbhd c ver Noexemploanterior,podemosvericar oanterior,podemosvericarquecadaelemen quecadaelementodeumveto todeumvetorécaracrécaracterizadoporumaposiçãorelativa.Observandoovetordeletras,teremos: Posição1àvalorA
Aentradadedadosemumvetorérealizadaporintermédiodeseuidenticador.Paraisso,utiliza-seumcontadorcrescenteoudecrescente,deacordocom anecessidade.Vamoscarregar10informaçõesnuméri anecessidade.Vamoscarregar1 0informaçõesnuméricasdentrodeumvetor. casdentrodeumvetor. vet como conjunto[1..10]deinteiro Parai=1Até10Faça Escrev Escr eva( a(“D “Dig igiite teu um mva valo lor rna nap pos osiç ição ão””, ,i, i,“ “do dov vet etor or”) ”) Leia(vet[i])
Posição5àvalorR
Fim-Para
Posição8àvalorQ Seguindoamesmalógica,podemosrealizaraimpressãodoconteúdodessevetor. Emumpseudocódigo,realizamosadeclaraçãodeumvetordaseguinteforma:
Parai=1Até10Faça
Escr Es crev eva( a(“V “Val alor ord da apo posi siçã ção: o:”, ,i, i,“ “do dov vet etor oré é””, ,ve vet[ t[ii]) Fim-Para Programavetores Declare vet como conjunto[n..n1]de Início
{comandos ou bloco de comandos} Fim
Vamosreunirosconceitosdeleituraeim Vamosreuniroscon ceitosdeleituraeimpressãonomesmoalgoritm pressãonomesmoalgoritmo. o. Programavetor_dados Declare vet como conjunto[1..10]deinteiro
i como inteiro Onomedovetorérepresentadopelaexpressão“vet”,cujoconjuntodeinformaçõeséidenticadopor “n”,posiçãoinicial,e “n1”,posiçãonal,ouseja, umvetorde10posiçõespoderáserrepresentadocomo[1..10].Eo “tipo” de informaçãoqueestevetordeveráreceber.
Início Parai=1Até10Faça
Escreva(“Digite um valor na posição”, i, “do vetor”)
InFoRmátICa 4
CaPítulo 1
1.6. Ver
Programavetores Declare
Denidotambémcomomatrizunidimensional,umvetor( Denidotambémcomomatrizunidimensi onal,umvetor(tabelas6e7)éuma tabelas6e7)éuma variávelquepossuiváriosdados,acessadospormeiodeumaposiçãorelativa, seguindoamesmaregradaconcepçãoeatribuiçãodasvariáveis.
vet como co conjunto[1..5] de iinte iro Início
vet[1] ß90 vet[2] ß1 vet[3] ß100 vet[4] ß4-1 vet[5] ß21
tb 6 Vetor de Letras.
1
2
3
4
5
6
7
8
9
10
A
H
M
B
R
J
G
Q
S
P
Fim
Pararealizaroacessoàposiçãodeumvetor,éprecisoidenticaraposiçãoque estáentreossinaisde[],logoapósonomedovetor: tb 7 Vetor de Números.
Escreva(vet[3])
1
2
3
4
5
6
7
8
9
10
10
56
-4
60
2
6
99
3
1
-10
Leia(vet[2])
• trbhd c ver Noexemploanterior,podemosvericar oanterior,podemosvericarquecadaelemen quecadaelementodeumveto todeumvetorécaracrécaracterizadoporumaposiçãorelativa.Observandoovetordeletras,teremos:
Aentradadedadosemumvetorérealizadaporintermédiodeseuidenticador.Paraisso,utiliza-seumcontadorcrescenteoudecrescente,deacordocom anecessidade.Vamoscarregar10informaçõesnuméri anecessidade.Vamoscarregar1 0informaçõesnuméricasdentrodeumvetor. casdentrodeumvetor. vet como conjunto[1..10]deinteiro Parai=1Até10Faça
Posição1àvalorA
Escrev Escr eva( a(“D “Dig igiite teu um mva valo lor rna nap pos osiç ição ão””, ,i, i,“ “do dov vet etor or”) ”) Leia(vet[i])
Posição5àvalorR
Fim-Para
Posição8àvalorQ Seguindoamesmalógica,podemosrealizaraimpressãodoconteúdodessevetor. Emumpseudocódigo,realizamosadeclaraçãodeumvetordaseguinteforma:
Parai=1Até10Faça
Escr Es crev eva( a(“V “Val alor ord da apo posi siçã ção: o:”, ,i, i,“ “do dov vet etor oré é””, ,ve vet[ t[ii]) Fim-Para Programavetores Declare vet como conjunto[n..n1]de Início
Vamosreunirosconceitosdeleituraeim Vamosreuniroscon ceitosdeleituraeimpressãonomesmoalgoritm pressãonomesmoalgoritmo. o.
{comandos ou bloco de comandos}
Programavetor_dados Declare vet como conjunto[1..10]deinteiro
Fim
i como inteiro Onomedovetorérepresentadopelaexpressão“vet”,cujoconjuntodeinformaçõeséidenticadopor “n”,posiçãoinicial,e “n1”,posiçãonal,ouseja, umvetorde10posiçõespoderáserrepresentadocomo[1..10].Eo “tipo” de informaçãoqueestevetordeveráreceber.
Início Parai=1Até10Faça
Escreva(“Digite um valor na posição”, i, “do vetor”) 41
40
InFoRmátICa 4
CaPítulo 1
mat como conjunto[1..5][1..3] deinteiro
Leia(vet[i])
Início
Fim-Para ParaI=1Até10Faça
{comando ou bloco de comandos} Fim
Es cr cre va va(“Va lo lor da da posição:”, i, ““do vetor é ”,”, ve vet[i]) Fim-Para Fim
Assimcomoosvetores,paraaatribuiçãodevaloresemumamatriz,devemos identicaralinhaeacoluna.
Outroexemploparaanalisar: Programamatriz Declare
Programamédia Declare
mat cc om omo co co nj nju nt nto[1.. 2] 2][1.. 2] 2] d de iinte iriro Início
vetor como conjunto[1..8] de inteiro soma, média como utuante ct como inteiro
mat[1,1] ß19 mat[1,2] ß2 mat[2,1] ß77 mat[2,2] ß16
Início
soma = 0
Fim
Paract=1Até8Faça
Es cr cre va va(“Digite u mv m va lo lor na na posição”, ct, ““do vetor”) Leia(vetor[ct]) soma ßsoma+vetor[ct] Fim-Para
média ßsoma/8----ou----médiaßsoma/ct Escreva(“A média nal é:”, média) Fim
• trbhd c riz Aleituraeaimpressãodasmatrizesseguemomesmoesquemad impressãodasmatrizesseguemomesmoesquemadosvetores.Mas osvetores.Mas seránecessárioutilizardoiscontadores:ump seránecessárioutilizardoisco ntadores:umparaidenticara araidenticaralinhaeoutro,p linhaeoutro,para ara coluna.Vejamosoexemplodeumamatriz2x2. Programamatriz Declare
1.7. mriz
deutuante matriz como conjunto[1..2][1..2]de lin, col como inteiro
Amatriz,aocontráriodovetor,émultidimensional.Nessecaso,osdadossão armazenadosoulidosdeacordocomarelaçãoentreoseixos,eseuíndiceérepresentadopordoisoumaisvalores.Umamatriz3x2,porexemplo,possuitrês linhasporduascolunas.Portanto,qualquer linhasporduascolunas.Po rtanto,qualquerreferênciaaosdad referênciaaosdadosdeveráapontar osdeveráapontar paraambasasposiçõesdaformamatriz[2,1],indicandoqueainformaçãoreferenciadaestánalinha2enacoluna1damatriz.Gracamente,tem-se:
1
matriz[2,1]
Início Paralin=1Até2Faça Paracol=1Até2Faça
Escreva(“Linha”, lin, “da matriz”) Escreva(“Coluna”, col, “da matriz”) Escreva(“Qual o valor?”) Leia(matriz[lin,col]) Fim-Para Fim-Para
2
1
9
20
2
10
6
3
2
11
matriz 3x2
Escr Es creva eva(“ (“Vi Visua sualiz lizan ando doo os sda dado dosd sda ama matr triz iz:” :”)) Paralin=1Até2Faça Paracol=1Até2Faça
Escreva(“Linha”, lin, “da matriz”) Escreva(“Coluna”, col, “da matriz”) Escreva(“O valor é:”) Escreva(matriz[lin, col])
Paraimplementação,realizamosadeclaraçãodamatrizdaseguinteforma: Programamatriz Declare
Fim-para Fim-para
Fim
InFoRmátICa 4
CaPítulo 1
mat como conjunto[1..5][1..3] deinteiro
Leia(vet[i])
Início
Fim-Para ParaI=1Até10Faça
{comando ou bloco de comandos} Fim
Es cr cre va va(“Va lo lor da da posição:”, i, ““do vetor é ”,”, ve vet[i]) Fim-Para Fim
Assimcomoosvetores,paraaatribuiçãodevaloresemumamatriz,devemos identicaralinhaeacoluna.
Outroexemploparaanalisar: Programamatriz Declare
Programamédia Declare
mat cc om omo co co nj nju nt nto[1.. 2] 2][1.. 2] 2] d de iinte iriro Início
vetor como conjunto[1..8] de inteiro soma, média como utuante ct como inteiro
mat[1,1] ß19 mat[1,2] ß2 mat[2,1] ß77 mat[2,2] ß16
Início
soma = 0
Fim
Paract=1Até8Faça
Es cr cre va va(“Digite u mv m va lo lor na na posição”, ct, ““do vetor”) Leia(vetor[ct]) soma ßsoma+vetor[ct] Fim-Para
média ßsoma/8----ou----médiaßsoma/ct Escreva(“A média nal é:”, média) Fim
• trbhd c riz Aleituraeaimpressãodasmatrizesseguemomesmoesquemad impressãodasmatrizesseguemomesmoesquemadosvetores.Mas osvetores.Mas seránecessárioutilizardoiscontadores:ump seránecessárioutilizardoisco ntadores:umparaidenticara araidenticaralinhaeoutro,p linhaeoutro,para ara coluna.Vejamosoexemplodeumamatriz2x2. Programamatriz Declare
1.7. mriz
deutuante matriz como conjunto[1..2][1..2]de lin, col como inteiro
Amatriz,aocontráriodovetor,émultidimensional.Nessecaso,osdadossão armazenadosoulidosdeacordocomarelaçãoentreoseixos,eseuíndiceérepresentadopordoisoumaisvalores.Umamatriz3x2,porexemplo,possuitrês linhasporduascolunas.Portanto,qualquer linhasporduascolunas.Po rtanto,qualquerreferênciaaosdad referênciaaosdadosdeveráapontar osdeveráapontar paraambasasposiçõesdaformamatriz[2,1],indicandoqueainformaçãoreferenciadaestánalinha2enacoluna1damatriz.Gracamente,tem-se:
matriz[2,1]
1
2
1
9
20
2
10
6
3
2
11
Início Paralin=1Até2Faça Paracol=1Até2Faça
Escreva(“Linha”, lin, “da matriz”) Escreva(“Coluna”, col, “da matriz”) Escreva(“Qual o valor?”) Leia(matriz[lin,col]) Fim-Para Fim-Para
matriz 3x2
Escr Es creva eva(“ (“Vi Visua sualiz lizan ando doo os sda dado dosd sda ama matr triz iz:” :”)) Paralin=1Até2Faça Paracol=1Até2Faça
Escreva(“Linha”, lin, “da matriz”) Escreva(“Coluna”, col, “da matriz”) Escreva(“O valor é:”) Escreva(matriz[lin, col])
Paraimplementação,realizamosadeclaraçãodamatrizdaseguinteforma:
Fim-para Fim-para
Programamatriz Declare
Fim 43
42
InFoRmátICa 4
CaPítulo 1
Outroexemplo:
Programaprocedimento Declare
Programasoma Declare
op como caractere
deutuante a,b,c como conjunto[1..8][1..4]de ln, cl como inteiro Início Paraln=1Até8Faça Paracl=1Até4Faça
Escreva(“Digite o valor para a Matriz A:”) Leia(a[ln, cl]) Escreva(“Digite o valor para a Matriz B:”) Leia(b[ln, cl]) Escreva(“Valores somados para a Matriz C:”) c[ln, cl] = a[ln, cl] + b[ln, cl] Escreva(c[ln, cl]) Fim-Para Fim-Para Fim
1.8. Prgrçã dr Umadastécnicasbemempregadasparaodesenvolvimentodeprogramaséa modulaçãodepartedocódigo.Issosignicaqueoprogramaprincipaléquebradoempartesmenores.Ecadaparterep partesmenores.Ecadaparterepresentaumaunida resentaumaunidadefuncional.Essas defuncional.Essas sub-rotinassãoidenticadascomoprocedimentosoufunções.Permitemque partedocódigosejareaproveitadaemoutrapartedocódigoprincipalou,até mesmo,emprojetosdiferentes,poroutrosprogramadores.
• Prcedie Umprocedimento,assimcomooprogramaprincipal,éformad Umprocedimento,assimcomooprogram aprincipal,éformadoportodaaesoportodaaestruturalógica(início-m, (início-m,variáveiseinstruções).Pode variáveiseinstruções).Podeserutilizadoem serutilizadoemqualquer qualquer partedeumprogramaquesejareferenciado.Dessaforma,aoseracionado,o procedimentoassumeocontroledaexecução assumeocontroledaexecução.E,quando .E,quandoénalizado,o énalizado,ocontrole controle retornaaoprogramaprincipal.
Procedimento bomdia
Escreva(“Bom dia!!!!!”) Fim-procedimento Início
E sc scre va va(“D es es ejeja ve ve rr no no ssss aa me me ns ns ag age m? m? ((S /N /N)”) Leia(op) Se op = ‘S’ Ou op = ‘s’ Então bomdia // /c cha hama mada dao ou upr proc oced edim imen ento to Fim-Se Fim
• Vriáveis cis gbis Asvariáveislocaissãoconsideradasapenasemumasub-rotina(procedimento oufunção).Dessaforma,são oufunção) .Dessaforma,sãodesconhecidaspeloalgori desconhecidaspeloalgoritmoprinc tmoprincipal,aoco ipal,aocontrántráriodasglobais,quesãoconsideradasportodooalgoritmo. Programatipos_variáveis Declare
a ,, b b co como II NT NT EI EI RO RO /// sã são vv ar ar iáiáve isis d d o o titip o o gl gl ob ob alal Procedimentoteste Declare
x, y como inteiro // são variáveis locais // esta área reconhece (a),(b),(x) e (y) Fim-procedimento Início
// esta área reconhece (a) e (b). Fim
Oquadroemseguidamostraocampodevisualizaçõesdasvariáveis,conforme opseudocódigoapresentadoanteriormente.
Procedimentonome-do-procedimento(parâmetro:tipo)
Decla re re {va ririáveis} {comando ou bloco de comando
Programa tipos_variaveis Procedimento teste
Fim-Procedimento
Visualização das variáveis
Onome-do-procedimento fazaidenticaçãodoprograma–eéporessaexOnome-do-procedimento pressãoqueeleseráreferenciado.Logoapósessaetapa,encontramososparâmetroseadeniçãodeseutipo,osquaisrepresentamvariáveisquereceberão valoresnomomentodachamada. valoresnomom entodachamada.Assimcomoocódigoprinci Assimcomoocódigoprincipal,oprocepal,oprocedimentopossuiasvariáveislocaisdemanipulaçãodedadoseoscomandos necessáriosparaasuaexecução.
Visualização das variáveis (a),(b),(x) e (y) (a) e (b)
Acompanheumexemploparaocálculodaáreadoquadradousandooprocedimento.
InFoRmátICa 4
CaPítulo 1
Outroexemplo:
Programaprocedimento Declare
Programasoma Declare
op como caractere
deutuante a,b,c como conjunto[1..8][1..4]de ln, cl como inteiro Início Paraln=1Até8Faça Paracl=1Até4Faça
Escreva(“Digite o valor para a Matriz A:”) Leia(a[ln, cl]) Escreva(“Digite o valor para a Matriz B:”) Leia(b[ln, cl]) Escreva(“Valores somados para a Matriz C:”) c[ln, cl] = a[ln, cl] + b[ln, cl] Escreva(c[ln, cl]) Fim-Para Fim-Para Fim
1.8. Prgrçã dr Umadastécnicasbemempregadasparaodesenvolvimentodeprogramaséa modulaçãodepartedocódigo.Issosignicaqueoprogramaprincipaléquebradoempartesmenores.Ecadaparterep partesmenores.Ecadaparterepresentaumaunida resentaumaunidadefuncional.Essas defuncional.Essas sub-rotinassãoidenticadascomoprocedimentosoufunções.Permitemque partedocódigosejareaproveitadaemoutrapartedocódigoprincipalou,até mesmo,emprojetosdiferentes,poroutrosprogramadores.
• Prcedie
Procedimento bomdia
Escreva(“Bom dia!!!!!”) Fim-procedimento Início
E sc scre va va(“D es es ejeja ve ve rr no no ssss aa me me ns ns ag age m? m? ((S /N /N)”) Leia(op) Se op = ‘S’ Ou op = ‘s’ Então bomdia // /c cha hama mada dao ou upr proc oced edim imen ento to Fim-Se Fim
• Vriáveis cis gbis Asvariáveislocaissãoconsideradasapenasemumasub-rotina(procedimento oufunção).Dessaforma,são oufunção) .Dessaforma,sãodesconhecidaspeloalgori desconhecidaspeloalgoritmoprinc tmoprincipal,aoco ipal,aocontrántráriodasglobais,quesãoconsideradasportodooalgoritmo. Programatipos_variáveis Declare
a ,, b b co como II NT NT EI EI RO RO /// sã são vv ar ar iáiáve isis d d o o titip o o gl gl ob ob alal Procedimentoteste Declare
x, y como inteiro // são variáveis locais // esta área reconhece (a),(b),(x) e (y) Fim-procedimento Início
// esta área reconhece (a) e (b).
Umprocedimento,assimcomooprogramaprincipal,éformad Umprocedimento,assimcomooprogram aprincipal,éformadoportodaaesoportodaaestruturalógica(início-m, (início-m,variáveiseinstruções).Pode variáveiseinstruções).Podeserutilizadoem serutilizadoemqualquer qualquer partedeumprogramaquesejareferenciado.Dessaforma,aoseracionado,o procedimentoassumeocontroledaexecução assumeocontroledaexecução.E,quando .E,quandoénalizado,o énalizado,ocontrole controle retornaaoprogramaprincipal.
Fim
Oquadroemseguidamostraocampodevisualizaçõesdasvariáveis,conforme opseudocódigoapresentadoanteriormente.
Procedimentonome-do-procedimento(parâmetro:tipo)
Decla re re {va ririáveis} {comando ou bloco de comando
Programa tipos_variaveis Procedimento teste
Fim-Procedimento
Visualização das variáveis
Onome-do-procedimento fazaidenticaçãodoprograma–eéporessaexOnome-do-procedimento pressãoqueeleseráreferenciado.Logoapósessaetapa,encontramososparâmetroseadeniçãodeseutipo,osquaisrepresentamvariáveisquereceberão valoresnomomentodachamada. valoresnomom entodachamada.Assimcomoocódigoprinci Assimcomoocódigoprincipal,oprocepal,oprocedimentopossuiasvariáveislocaisdemanipulaçãodedadoseoscomandos necessáriosparaasuaexecução.
Visualização das variáveis (a),(b),(x) e (y) (a) e (b)
Acompanheumexemploparaocálculodaáreadoquadradousandooprocedimento. 45
44
InFoRmátICa 4
CaPítulo 1
• Fçã Programaquadrado Declare
op como caractere Procedimento quadrado
Declare lado, área como inteiro E sc scre va va(“Digite um um nú me mero inteiro:”) Leia(lado) área ßlado*lado E sc scre va va(“A á re re ad a do qu ad ad ra rado é:é:”, á re re a)a) Fim-Procedimento Início
Escr Es crev eva( a(““Go Gost star aria iad de esa sabe ber ra aár área ead de eum umq qua uadr drad ado o(S (S/N /N)? )?”) ”) Leia(op) Seop=‘S’Ouop=‘s’Então quadrado Fim-Se Fim
Umafunçãotemasmesmascaracterísticasestruturaisdeumprocedimento,no Umafunçãotemasmesmascaracterísticasestruturaisdeumprocedimen to,no quedizrespeitoafatorescomofuncionalidade,visualizaçãodevariáveisechamadas.Masasuaprincipalvantageméapossib madas.Masasuaprinci palvantageméapossibilidadederetornod ilidadederetornodevaloresem evaloresem temporeal.Issoquerdizerque,quandochamamosdeterminadafunção,podemosrecebervaloresemtemporeal,armazenandooresultadoemumavariável. Funçãonome-da-função( parâmetros:tipo):
De clcl ar are {v {variáveis} {comando ou bloco de comandos} Fim-Função
Diferentementedoprocedimento,é Diferentementedopr ocedimento,éprecisofazera precisofazeraidenticação identicaçãodotipode dotipodevalor valor aserretornado. Programaquadrado Declare
op como caractere lado como inteiro
• Pssge de prâer
Função quadrado (ld como inteiro): inteiro
Apassagemdeparâmetrosporvaloréutilizadaparaqueassub-rotinaspossam receberinformaçõeserealizarqualquertipodemanipulaçãoforadopseudocódigoprincipal.
Declare área como inteiro área ßld*ld Fim-Função Início
Escrev Escr eva( a(“G “Gos osta tari ria ade des sab aber era aá áre rea ade deu um mqqua uadr drad ado o(S (S/N /N)? )?”) ”) Leia(op) Seop=‘S’Ouop=‘s’Então Escreva(“Digite o valor:”) Leia(lado) Escreva(“A área do quadrado é:”) Escreva(quadrado(lado))
Programaquadrado Declare
op como caracter lado como inteiro Procedimento quadrado (ld como inteiro)
Declare area como inteiro área ßld*ld E sc scre va va(“A á re re ad a do qu qu ad ad ra rado é:é:”, a re re a)a) Fim-Procedimento Início
Escrev Escr eva( a(““Go Gost star aria iad de esa sabe ber ra aár área ead de eum umq qua uadr drad ado o(S (S/N /N)? )?”) ”) Leia(op) Seop=‘S’Ouop=‘s’Então Escreva(“Digite o valor:”) Leia(lado) quadrado(lado) Fim-Se Fim
Fim-Se Fim
InFoRmátICa 4
CaPítulo 1
• Fçã Programaquadrado Declare
op como caractere Procedimento quadrado
Declare lado, área como inteiro E sc scre va va(“Digite um um nú me mero inteiro:”) Leia(lado) área ßlado*lado E sc scre va va(“A á re re ad a do qu ad ad ra rado é:é:”, á re re a)a) Fim-Procedimento Início
Escr Es crev eva( a(““Go Gost star aria iad de esa sabe ber ra aár área ead de eum umq qua uadr drad ado o(S (S/N /N)? )?”) ”) Leia(op) Seop=‘S’Ouop=‘s’Então quadrado Fim-Se Fim
Umafunçãotemasmesmascaracterísticasestruturaisdeumprocedimento,no Umafunçãotemasmesmascaracterísticasestruturaisdeumprocedimen to,no quedizrespeitoafatorescomofuncionalidade,visualizaçãodevariáveisechamadas.Masasuaprincipalvantageméapossib madas.Masasuaprinci palvantageméapossibilidadederetornod ilidadederetornodevaloresem evaloresem temporeal.Issoquerdizerque,quandochamamosdeterminadafunção,podemosrecebervaloresemtemporeal,armazenandooresultadoemumavariável. Funçãonome-da-função( parâmetros:tipo):
De clcl ar are {v {variáveis} {comando ou bloco de comandos} Fim-Função
Diferentementedoprocedimento,é Diferentementedopr ocedimento,éprecisofazera precisofazeraidenticação identicaçãodotipode dotipodevalor valor aserretornado. Programaquadrado Declare
op como caractere lado como inteiro
• Pssge de prâer
Função quadrado (ld como inteiro): inteiro
Apassagemdeparâmetrosporvaloréutilizadaparaqueassub-rotinaspossam receberinformaçõeserealizarqualquertipodemanipulaçãoforadopseudocódigoprincipal.
Declare área como inteiro área ßld*ld Fim-Função Início
Escrev Escr eva( a(“G “Gos osta tari ria ade des sab aber era aá áre rea ade deu um mqqua uadr drad ado o(S (S/N /N)? )?”) ”) Leia(op) Seop=‘S’Ouop=‘s’Então Escreva(“Digite o valor:”) Leia(lado) Escreva(“A área do quadrado é:”) Escreva(quadrado(lado))
Programaquadrado Declare
op como caracter lado como inteiro Procedimento quadrado (ld como inteiro)
Declare area como inteiro área ßld*ld E sc scre va va(“A á re re ad a do qu qu ad ad ra rado é:é:”, a re re a)a)
Fim-Se Fim
Fim-Procedimento Início
Escrev Escr eva( a(““Go Gost star aria iad de esa sabe ber ra aár área ead de eum umq qua uadr drad ado o(S (S/N /N)? )?”) ”) Leia(op) Seop=‘S’Ouop=‘s’Então Escreva(“Digite o valor:”) Leia(lado) quadrado(lado) Fim-Se Fim
47
46
Capítulo 2
Estrutura de dados • Lista encadeada • Lista circular • Lista duplamente encadeada • Pilhas • Filas • Árvores
Capítulo 2
Estrutura de dados • Lista encadeada • Lista circular • Lista duplamente encadeada • Pilhas • Filas • Árvores
InFoRmátICa 4
CaPítulo 2
início
va zio II NULL
início
INFO 001 II posição 01
vazio II NULL
A
estruturadedadosdenedequemaneiraostiposprimitivo estruturadedadosdenedequemaneiraostiposprimi tivos s serãoorganizados(FORBELLONE,2005):pormeiodelista, pilhas,lasouárvores.Essasopçõesrepresentamosconjuntosa seremmanipuladosporlogarítmos,dediferentesformas.Essetipodeestrutura podesofreralterações(MARCONDES,2002).N podesofreralterações(MARCOND ES,2002).Nateoria,refere-seàiden ateoria,refere-seàidenticaticaçãoeaodesenvolvimento desenvolvimentodemodelosparaaresolução demodelosparaaresoluçãodeproblemas.Naprá deproblemas.Naprática, tica, signicacriarrepresentaçõesconcretasquepodematuarsobremodelos.
2.1. lis ecded Umespaçodememóriaéreservadop dememóriaéreservadoparaosdados, araosdados,quandosão quandosãoinseridosem inseridosemuma uma listaencadeada.Então,oespaçoocupadopo listaencadeada.Então, oespaçoocupadoporumalista,nam rumalista,namemória,éexpresso emória,éexpresso pelaquantidadedeelementoscontidosalidentro.Paraquesepossapercorrer todososelementos,deve-searmazenar–juntoacadaumdeles–umponteiro queindiqueoelementoseguinte(gura1 queindiqueoelem entoseguinte(gura15). 5).
Figu 16 Inserção de elemento.
Cadaelementodalistaéidenticadocomoumnó.Utilizam-seosponteirospara percorrertodososnósdalista.OúltimoelementodeveráapontarparaNULL (emlinguagemdeprogramação (emlinguagem deprogramaçãodecomputa decomputador,éapalavra dor,éapalavrausadaparasereferir usadaparasereferir aumdispositivonulo) aumdispositiv onulo).Paraacri .Paraacriaçãodeumalista,co açãodeumalista,considera-seop nsidera-seoprimeiropo rimeiroponnteiroexistente.UmalistavaziadevesercriadacomoponteiroindicandoNULL, permitindoinserçõesnonal.Essalistadeveseralocadaemumaposiçãode memória,comencadeamentoparaopróximoelemento(gura16). Retirarumelementodalistaé Retirarumelement odalistaé umprocesso umprocessoum um pouco poucomaiscomple maiscomplexo,pois xo,pois podemosencontrardiferentessituações,comoeliminarop podemosencontrar diferentessituações,comoeliminaroprimeiroelemen rimeiroelementoda toda listaouumelementointermediário(gura17). Outrasfunçõesagregadasàslistassão:buscadeelem Outrasfunçõesagrega dasàslistassão:buscadeelemento entosevericaçã severicaçãopara opara saberseelaestávaziaounão.
Figu 17 Eliminação de um elemento.
Figu 15 Lista encadead encadeada. a.
início
início
início
INFO 001 II posição 01
INFO 001 II posição 01
INFO 001 II posição 01
INFO 002 II posição 02
INFO 002 II posição 02
INFO 002 II posição 02
INFO 003 II posição 03
INFO 003 II posição 03
INFO 003 II posição 03
InFoRmátICa 4
CaPítulo 2
início
va zio II NULL
início
INFO 001 II posição 01
vazio II NULL
A
estruturadedadosdenedequemaneiraostiposprimitivo estruturadedadosdenedequemaneiraostiposprimi tivos s serãoorganizados(FORBELLONE,2005):pormeiodelista, pilhas,lasouárvores.Essasopçõesrepresentamosconjuntosa seremmanipuladosporlogarítmos,dediferentesformas.Essetipodeestrutura podesofreralterações(MARCONDES,2002).N podesofreralterações(MARCOND ES,2002).Nateoria,refere-seàiden ateoria,refere-seàidenticaticaçãoeaodesenvolvimento desenvolvimentodemodelosparaaresolução demodelosparaaresoluçãodeproblemas.Naprá deproblemas.Naprática, tica, signicacriarrepresentaçõesconcretasquepodematuarsobremodelos.
2.1. lis ecded Umespaçodememóriaéreservadop dememóriaéreservadoparaosdados, araosdados,quandosão quandosãoinseridosem inseridosemuma uma listaencadeada.Então,oespaçoocupadopo listaencadeada.Então, oespaçoocupadoporumalista,nam rumalista,namemória,éexpresso emória,éexpresso pelaquantidadedeelementoscontidosalidentro.Paraquesepossapercorrer todososelementos,deve-searmazenar–juntoacadaumdeles–umponteiro queindiqueoelementoseguinte(gura1 queindiqueoelem entoseguinte(gura15). 5).
Figu 16 Inserção de elemento.
Cadaelementodalistaéidenticadocomoumnó.Utilizam-seosponteirospara percorrertodososnósdalista.OúltimoelementodeveráapontarparaNULL (emlinguagemdeprogramação (emlinguagem deprogramaçãodecomputa decomputador,éapalavra dor,éapalavrausadaparasereferir usadaparasereferir aumdispositivonulo) aumdispositiv onulo).Paraacri .Paraacriaçãodeumalista,co açãodeumalista,considera-seop nsidera-seoprimeiropo rimeiroponnteiroexistente.UmalistavaziadevesercriadacomoponteiroindicandoNULL, permitindoinserçõesnonal.Essalistadeveseralocadaemumaposiçãode memória,comencadeamentoparaopróximoelemento(gura16). Retirarumelementodalistaé Retirarumelement odalistaé umprocesso umprocessoum um pouco poucomaiscomple maiscomplexo,pois xo,pois podemosencontrardiferentessituações,comoeliminarop podemosencontrar diferentessituações,comoeliminaroprimeiroelemen rimeiroelementoda toda listaouumelementointermediário(gura17). Outrasfunçõesagregadasàslistassão:buscadeelem Outrasfunçõesagrega dasàslistassão:buscadeelemento entosevericaçã severicaçãopara opara saberseelaestávaziaounão.
Figu 17 Eliminação de um elemento.
Figu 15 Lista encadead encadeada. a.
início
início
início
INFO 001 II posição 01
INFO 001 II posição 01
INFO 001 II posição 01
INFO 002 II posição 02
INFO 002 II posição 02
INFO 002 II posição 02
INFO 003 II posição 03
INFO 003 II posição 03
INFO 003 II posição 03
51
50
InFoRmátICa 4
CaPítulo 2
Figu 18 Lista circular.
INFO 001 II posição 01
INFO 002 II posição 02
INFO 003 II posição 03 tb 8
2.4. Pihs
Emumalistacircularoúltimoelementodeveráapontarparao Emumalistacircularoúltimoelementodeverá apontarparaoprimeiro(gura primeiro(gura 18).Parapercorreralistaéprecisovisitartodososseuselementos,apartirdeum ponteiroinicial,atéchegar ponteiroin icial,atéchegaraelenovamente.Casoopont aelenovamente.Casooponteiroinicialseja eiroinicialsejaNULL, NULL, alistaseráconsideradavazia.
Apilhaéumaestruturabemsimples,muitasvezesencontradadentrodohard ware.Aideiaéacessaroprimeiroelemento éacessaroprimeiroelementoapartirdo apartirdotopodapilha.Assim,um topodapilha.Assim,um novoelementoinseridona novoelemen toinseridonapilhavaidiretopara pilhavaidiretoparaotopoe,logi otopoe,logicamente,éoúni camente,éoúnico co quepodeserretirado.Portanto,oprimeiroquesaiéoúltimoqueentrou.Temos,nessecaso,oLIFO(doinglêslastin,rstout,ouúltimodentro,primeiro fora).Háduasoperaçõesbásicas,paratrabalharcomaspilhas:push(empilhar) epop(desempilhar)(tabela8).
2.3. lis dpee ecded
2.5. Fis
Nalistaencadeadaháumponteiroindicandoopróximoelemento.Jánaduplamenteencadeadasãodoisponteiros:ummostrandooelementoseguintee outro,oanterio outr o,oanterior.Apartirdeumelemento r.Apartirdeumelementopodemosacessar podemosacessarambososlados ambososlados (gura19).
Outraestruturaéala,queapresentaaordemdesaídadoselementosde formadiferentedoqueaconteceemumapilha.Nala,oprimeiroelemento queentraéoprimeiroasair:FIFO(rstin,rstout,ouseja,primeirodentro, primeirofora).Épossívelinserirumnovoelementononaldalaeretiraro primeiro(tabela9).
2.2. lis circr
Figu 19 Lista duplament duplamentee encadeada.
INFO 001 II posição 01
INFO 001 II posição 01
INFO 001 II posição 01
II posição 02
II posição 02
II posição 02
Push e pop em uma pilha.
tb 9 Entrada e saída de uma la.
InFoRmátICa 4
CaPítulo 2
Figu 18 Lista circular.
INFO 001 II posição 01
INFO 002 II posição 02
INFO 003 II posição 03 tb 8
2.4. Pihs
Emumalistacircularoúltimoelementodeveráapontarparao Emumalistacircularoúltimoelementodeverá apontarparaoprimeiro(gura primeiro(gura 18).Parapercorreralistaéprecisovisitartodososseuselementos,apartirdeum ponteiroinicial,atéchegar ponteiroin icial,atéchegaraelenovamente.Casoopont aelenovamente.Casooponteiroinicialseja eiroinicialsejaNULL, NULL, alistaseráconsideradavazia.
Apilhaéumaestruturabemsimples,muitasvezesencontradadentrodohard ware.Aideiaéacessaroprimeiroelemento éacessaroprimeiroelementoapartirdo apartirdotopodapilha.Assim,um topodapilha.Assim,um novoelementoinseridona novoelemen toinseridonapilhavaidiretopara pilhavaidiretoparaotopoe,logi otopoe,logicamente,éoúni camente,éoúnico co quepodeserretirado.Portanto,oprimeiroquesaiéoúltimoqueentrou.Temos,nessecaso,oLIFO(doinglêslastin,rstout,ouúltimodentro,primeiro fora).Háduasoperaçõesbásicas,paratrabalharcomaspilhas:push(empilhar) epop(desempilhar)(tabela8).
2.3. lis dpee ecded
2.5. Fis
Nalistaencadeadaháumponteiroindicandoopróximoelemento.Jánaduplamenteencadeadasãodoisponteiros:ummostrandooelementoseguintee outro,oanterio outr o,oanterior.Apartirdeumelemento r.Apartirdeumelementopodemosacessar podemosacessarambososlados ambososlados (gura19).
Outraestruturaéala,queapresentaaordemdesaídadoselementosde formadiferentedoqueaconteceemumapilha.Nala,oprimeiroelemento queentraéoprimeiroasair:FIFO(rstin,rstout,ouseja,primeirodentro, primeirofora).Épossívelinserirumnovoelementononaldalaeretiraro primeiro(tabela9).
2.2. lis circr
Figu 19 Lista duplament duplamentee encadeada.
Push e pop em uma pilha.
INFO 001 II posição 01
INFO 001 II posição 01
INFO 001 II posição 01
II posição 02
II posição 02
II posição 02
tb 9 Entrada e saída de uma la.
53
52
InFoRmátICa 4
CaPítulo 2
Figu 20
Figu 22
Árvore e seus nós.
Esuema da Árvore Binária.
raiz
R
A
B
C
D
E
2.6. rvres Ostópicosanterioresrepresentamadisposiçãodedadoslineares.Asárvores, porsuavez,permitemque porsuavez,perm itemqueosdadossejamdispostosdeforma osdadossejamdispostosdeformahierárquica,como hierárquica,como umaestruturadediretórios.Todaárvorepossuiumnó“r”,denominadoraiz. Osdemaisnóssãoidenticadoscomointernoso Osdemaisnóssãoidenticad oscomointernosou“lhos”(gura20 u“lhos”(gura20). ).
sad
Naárvorebináriacadanótemzero,umou,nomáximo,dois“lhos”.Então,é Naárvorebináriacadanótemzero,umou,nomáximo,dois“lhos” .Então,é possíveldenirumaárvorebináriacomovaziaouumnóraizcomduassubárvores–umanadireita(sad)eoutranaesquerda( vores–umanadireita( sad)eoutranaesquerda(sae)(gura22) sae)(gura22)..
• rvre geéric Naárvorebináriahárestriçãoquantoaonúmerodenós:nomáximodois.Esse limitenãoacontecenasárvoresgenéricas(gura23).
• rvres biáris
Figu 23 Árvore genérica.
Umbomexemplodeárvorebináriasãoasexpressõesmatemáticas,asquaisnos permitemdistri permi temdistribuir buiros os oper operador adorese ese osoperand osoperandos.Porexemp os.Porexemplo,aexpressão lo,aexpressão ((1+2)*(5*3))-2(gura21). Figu 21 Árvore binária.
-
*
2
+
1
sae
*
2
5
3
InFoRmátICa 4
CaPítulo 2
Figu 20
Figu 22
Árvore e seus nós.
Esuema da Árvore Binária.
raiz
R
A
B
C
D
E
2.6. rvres Ostópicosanterioresrepresentamadisposiçãodedadoslineares.Asárvores, porsuavez,permitemque porsuavez,perm itemqueosdadossejamdispostosdeforma osdadossejamdispostosdeformahierárquica,como hierárquica,como umaestruturadediretórios.Todaárvorepossuiumnó“r”,denominadoraiz. Osdemaisnóssãoidenticadoscomointernoso Osdemaisnóssãoidenticad oscomointernosou“lhos”(gura20 u“lhos”(gura20). ).
sae
sad
Naárvorebináriacadanótemzero,umou,nomáximo,dois“lhos”.Então,é Naárvorebináriacadanótemzero,umou,nomáximo,dois“lhos” .Então,é possíveldenirumaárvorebináriacomovaziaouumnóraizcomduassubárvores–umanadireita(sad)eoutranaesquerda( vores–umanadireita( sad)eoutranaesquerda(sae)(gura22) sae)(gura22)..
• rvre geéric Naárvorebináriahárestriçãoquantoaonúmerodenós:nomáximodois.Esse limitenãoacontecenasárvoresgenéricas(gura23).
• rvres biáris
Figu 23 Árvore genérica.
Umbomexemplodeárvorebináriasãoasexpressõesmatemáticas,asquaisnos permitemdistri permi temdistribuir buiros os oper operador adorese ese osoperand osoperandos.Porexemp os.Porexemplo,aexpressão lo,aexpressão ((1+2)*(5*3))-2(gura21). Figu 21 Árvore binária.
-
*
2
+
1
*
2
5
3
55
54
Capítulo 3
Criação de páginas Web • Identificação do documento • Estrutura do documento • Formatação • Texto • Cores • Tabelas • Imagens • Links Formulários • XML
Capítulo 3
Criação de páginas Web • Identificação do documento • Estrutura do documento • Formatação • Texto • Cores • Tabelas • Imagens • Links Formulários • XML
InFoRmátICa 4
CaPítulo 3
3.1.. Ideicçã d dce 3.1 ParaacriaçãodedocumentosHTML,devemosidenticaropadrãodaquele queestásendocriado,oDOCTYPE.EleespecicaoDTD(DocumentType DenitionouDeniçãodoTipodeDocumento DeniçãodoTipodeDocumento)aserutilizado,c )aserutilizado,comasrespecomasrespectivasregras,conformesepodeobservarnasequência: HML 4.01 ransacional: possuitodaaqualidadedoHTML4.01.Porém usaelementosdesaprovadosouobsoletos.
O
HTML(iniciaisdaexpressãoeminglêsHyperTextMarkup LanguageouLinguagemdeMarcaçãodeHipertexto)vem sendoutilizadoparaodesenvolvimen sendoutilizadopara odesenvolvimentodepáginasda todepáginasdainternet internet desdeasuaconcepçãonoConselhoEuropeudePesquisasNucleares,oCERN (eminglês,EuropeanCouncilforNuclearResearch),em1991.Divulgadaem dezembrode1999,aúltimaespecicaçãodoW3C(WordWideWebConsortiumouConsórciodaRededeAlcanceMundial)recomendaaversão4.01 comopadrãodedesenvolv como padrãodedesenvolvimen imentodoHTML,quesofreunovarefor todoHTML,quesofreunovareformulaç mulação ão combasenaestruturadedocumentosXML(ExtensibleMarkupLanguage). Surgiu,assim,oXHTML(eXtensibleHyperTextMarkupLanguageouLinguagemdeMarcaçãodeTextoExtensível),consideradaonovopadrãodedesenvolvimentoweb.
Página de HTML do Centro Paula Souza.
DICA Para validar o tipo de documento que está sendo desenvolvido, utilize o validador do W3C no link: http:// validator.w3.org/.
HML 4.01 Frameset: utilizamolduras(FRAMES)etambémétransitório.
HML 4.01 Strict: seguepadrõesexigidospeloW3C,portanto,cumprindo asespecicações.
DamesmamaneiracomoacontececomoHTML,existemtambémespecicaçõesDOCTYPEparaosdocumentosXHTML. XHML 1.0 ransacional: utilizarecursosobsoletos.
XHML 1.0 Frameset:usamolduras(FRAMES)etambémétransitório. Frameset: usamolduras(FRAMES)etambémétransitório.
XHML 1.0 Strict: seguepadrõesexigidospeloW3C,ouseja,cumpreasespecicações.
OdocumentoHTMLouXHTMLrecebeasextensões.htmou.html,associaHTMLouXHTMLrecebeasextensões.htmou.html,associadasaosnavegadores.
O W3C Fundado em 1994, o W3C (World Wide WebConsortium) ou Consórcio da Rede Mundial de Computadores) é formado por empresas de tecnologia de diferentes partes do mundo que trabalham para criar padrões e diretrizes para a interpretação de conteúdos da web. O grupo desenvolve protocolos, promove fóruns abertos, entre outras ações. Mais informações podem ser obtidas no site http://www w3c.br.
InFoRmátICa 4
CaPítulo 3
3.1.. Ideicçã d dce 3.1 ParaacriaçãodedocumentosHTML,devemosidenticaropadrãodaquele queestásendocriado,oDOCTYPE.EleespecicaoDTD(DocumentType DenitionouDeniçãodoTipodeDocumento DeniçãodoTipodeDocumento)aserutilizado,c )aserutilizado,comasrespecomasrespectivasregras,conformesepodeobservarnasequência: HML 4.01 ransacional: possuitodaaqualidadedoHTML4.01.Porém usaelementosdesaprovadosouobsoletos.
O
HTML(iniciaisdaexpressãoeminglêsHyperTextMarkup LanguageouLinguagemdeMarcaçãodeHipertexto)vem sendoutilizadoparaodesenvolvimen sendoutilizadopara odesenvolvimentodepáginasda todepáginasdainternet internet desdeasuaconcepçãonoConselhoEuropeudePesquisasNucleares,oCERN (eminglês,EuropeanCouncilforNuclearResearch),em1991.Divulgadaem dezembrode1999,aúltimaespecicaçãodoW3C(WordWideWebConsortiumouConsórciodaRededeAlcanceMundial)recomendaaversão4.01 comopadrãodedesenvolv como padrãodedesenvolvimen imentodoHTML,quesofreunovarefor todoHTML,quesofreunovareformulaç mulação ão combasenaestruturadedocumentosXML(ExtensibleMarkupLanguage). Surgiu,assim,oXHTML(eXtensibleHyperTextMarkupLanguageouLinguagemdeMarcaçãodeTextoExtensível),consideradaonovopadrãodedesenvolvimentoweb.
Para validar o tipo de documento que está sendo desenvolvido, utilize o validador do W3C no link: http:// validator.w3.org/.
HML 4.01 Frameset: utilizamolduras(FRAMES)etambémétransitório.
HML 4.01 Strict: seguepadrõesexigidospeloW3C,portanto,cumprindo asespecicações.
DamesmamaneiracomoacontececomoHTML,existemtambémespecicaçõesDOCTYPEparaosdocumentosXHTML.
Página de HTML do Centro Paula Souza.
DICA
XHML 1.0 ransacional: utilizarecursosobsoletos.
XHML 1.0 Frameset:usamolduras(FRAMES)etambémétransitório. Frameset: usamolduras(FRAMES)etambémétransitório.
XHML 1.0 Strict: seguepadrõesexigidospeloW3C,ouseja,cumpreasespecicações.
O W3C Fundado em 1994, o W3C (World Wide WebConsortium) ou Consórcio da Rede Mundial de Computadores) é formado por empresas de tecnologia de diferentes partes do mundo que trabalham para criar padrões e diretrizes para a interpretação de conteúdos da web. O grupo desenvolve protocolos, promove fóruns abertos, entre outras ações. Mais informações podem ser obtidas no site http://www w3c.br.
OdocumentoHTMLouXHTMLrecebeasextensões.htmou.html,associaHTMLouXHTMLrecebeasextensões.htmou.html,associadasaosnavegadores. 59
58
InFoRmátICa 4
CaPítulo 3
3.2. Esrr d dce Paraindicarasmarcaçõesdodocumento,deno asmarcaçõesdodocumento,denominadastag,devemosutilizaros minadastag,devemosutilizaros sinaisde“<”e“>”.Paraqueelesejavalidado,deveteraseguinteestruturabásica:
utilizaroCSS(CascadingStyleSheetouEstiloPáginasemCascata),parafazer aformataçãocorretado corretadodocumento. documento.Ainserçãodessaformataçãoé Ainserçãodessaformataçãoérealizadapor realizadapor meiodatag
META:deneinformaçõescomplementares,taiscomo:otipodedocumentoe
daversãodecaracteresutilizada.NoBrasil,devemos caracteresutilizada.NoBrasil,devemosadotarocódigo“iso-8859adotarocódigo“iso-88591”,querepresentaocon 1” ,querepresentaoconjuntodecaracteresdospaíseslatinos. juntodecaracteresdospaíseslatinos.
Noestilodeterminadoparaatag,duaspropriedadesforamselecionadas:acordefundoestiloskyblueeacoramareladasletras(gura25).
TITLE: éainformaçãoqueapar éainformaçãoqueaparecenaabadonavegador ecenaabadonavegador(gura24). (gura24). BODY: éocorpodapágina,ondeserãoinseridasasdemaistagsdemarcação.
OimportanteparaospadrõesXHTMLénãodeixarnenhumatagaberta.Ou seja,abreefecha,assimcomoastagisoladas.Porexemplo,o paraoHTMLe paraoXHTML.
3.3. Frçã AspáginasdevemsercriadasconformeasrecomendaçõesdoW3C,evitando, principalmentenaformatação,ousodetagsdesaprovadas.Portanto,deve-se
• Frçã de íve c Paraaformataçãodiretamentenatag,devemosutilizaratag
META:deneinformaçõescomplementares,taiscomo:otipodedocumentoe
daversãodecaracteresutilizada.NoBrasil,devemos caracteresutilizada.NoBrasil,devemosadotarocódigo“iso-8859adotarocódigo“iso-88591”,querepresentaocon 1” ,querepresentaoconjuntodecaracteresdospaíseslatinos. juntodecaracteresdospaíseslatinos.
Noestilodeterminadoparaatag,duaspropriedadesforamselecionadas:acordefundoestiloskyblueeacoramareladasletras(gura25).
TITLE: éainformaçãoqueapar éainformaçãoqueaparecenaabadonavegador ecenaabadonavegador(gura24). (gura24). BODY: éocorpodapágina,ondeserãoinseridasasdemaistagsdemarcação.
OimportanteparaospadrõesXHTMLénãodeixarnenhumatagaberta.Ou seja,abreefecha,assimcomoastagisoladas.Porexemplo,o paraoHTMLe paraoXHTML.
3.3. Frçã
• Frçã de íve c Paraaformataçãodiretamentenatag,devemosutilizaratag Minha Primeira Página em HML
• Frçã de íve gb Nessecaso,devemoscriardentrododocumentoHTMLumlink(códigoabaixo)paraidenticarumdocumentodeformataçãoCSS. <meta http -equiv=”Content-equiv=”Content-ype” ype” content=”text/html; charset=utf-8”> Formatação com Arquivo Externo Minha Primeira Página em HML
• Csses e ideicdres Asclassespermitemqueváriosestilossejamaplica Asclassespermitemquevários estilossejamaplicadosnamesmatag.Dessa dosnamesmatag.Dessa forma,devemoscolocaroclassjuntoàtag. <meta http-equiv=”Content-ype” content=”text/html; charset=utf-8”> Utilização de Classes Minha página, usando a classe “um”
Minha página, usando a classe “dois”
Paraatag,foramaplicadosdoistiposdiferentesdeformataçãoapen Paraatag
,foramaplicadosdoisti posdiferentesdeformataçãoapenas as comatrocadonomedaclasse(“um”e“dois”) comatrocadonom edaclasse(“um”e“dois”).Vejaoresultado .Vejaoresultadonagura27 nagura27.. Usamos os iden Usamos identica ticadores dores quan quando do não quer queremos emos vincul vincular ar a form formataçã atação o a uma determ determinada inada tag. Os iden identica ticadores dores são nom nomes es deni denidos dos pelosprogramadores grama dores,, geralm geralmente ente associ associadosao adosao estilo de form formataçã atação o a serutilizada. Figu 27 Classes em CSS.
InFoRmátICa 4
CaPítulo 3
Figu 26
Noexemploanterior,atag identicaodocument Noexemploanterior,atag id enticaodocumentoaseradicionadoao oaseradicionadoao documentoprincipal,nocaso,o“estilo.css” documentoprin cipal,nocaso,o“estilo.css”.Vejaocódigo .Vejaocódigoaseguir: aseguir:
Formatação na tag.
/* CSS Document */ body {background:skyblue}
• Frçã de íve ger Atag
Minha Primeira Página em HML