Este documento apresenta uma apostila sobre algoritmos e linguagem de programação. Ele introduz os conceitos básicos de algoritmos e programação de computadores, e ensina uma pseudolinguagem chamada PortuCê para expressar algoritmos. Além disso, fornece exemplos de como construir algoritmos em PortuCê para realizar cálculos e operações lógicas e relacionais.
Este manual introduz o uso do Moodle para professores e tutores, descrevendo como criar e gerenciar cursos na plataforma da UFRGS. Ele explica a interface do Moodle, como adicionar conteúdos e atividades, e fornece um roteiro básico para criação e administração de um curso.
Este documento discute a metodologia e prática do ensino da matemática nas séries iniciais. Ele apresenta os principais desafios do processo de ensino e aprendizagem da matemática e enfatiza a importância de abordagens que privilegiem a resolução de problemas reais, o desenvolvimento do raciocínio lógico e a construção de conceitos pelos alunos. Além disso, discute as mudanças nos currículos que visam uma concepção mais ampla da matemática e do papel do professor.
1. This document provides an introduction to project management by discussing the evolution of management approaches from the industrial era to the current knowledge era.
2. It introduces the textbook on project management being offered by Unisa Digital to students, which will cover basic concepts and practices of modern project management.
3. The introduction explains that resources such as online chats, forums, libraries and email are available to support students' autonomous learning about project management.
Desenvolvimento de um portal para assinatura digital de arquivosJhonatas Lima
Este documento propõe o desenvolvimento de um portal para assinatura digital de arquivos. O portal permitiria armazenar documentos digitalmente e realizar a assinatura digital dos mesmos a partir das informações do certificado digital do usuário, validando também o certificado junto à autoridade certificadora, garantindo assim a validade jurídica dos documentos após o armazenamento e assinatura.
Este documento descreve um projeto de implementação de sessões de formação em regime de elearning (eworkshops) utilizando ferramentas da web 2.0. O projeto teve como objetivo disponibilizar sessões de formação sobre ferramentas digitais para educadores em diferentes modalidades, inicialmente com tutoria e posteriormente em regime aberto. As sessões foram desenvolvidas na plataforma Moodle e incluíram recursos síncronos. O documento detalha o enquadramento teórico, desenvolvimento das ferramentas, metodologia aplicada e
Relatório descritivo do curso de Educação a Distância: Construindo um Pro...Caio Moreno
Relatório descritivo do curso de Educação a Distância: Construindo um Projeto de Voluntariado Educativo.
Este relatório é parte do Trabalho de Conclusão do Curso de Graduação em Tecnologia e Mídias Digitais com Habilitação em Educação a Distância da Pontifícia Universidade Católica de São Paulo. Trata-se do projeto de curso-piloto na modalidade de Educação a Distância do Instituto Faça Parte, cujo título é: “Construindo um Projeto de Voluntariado Educativo”.
Relatamos a trajetória percorrida para a elaboração deste curso: as atividades de análise e planejamento, o desenho de instrução, o desenvolvimento, a produção, a implantação e o acompanhamento.
Caio Moreno de Souza
Deleni Mesquita
Fundamentos de topografia tuler & saraivaDanielle Galvão
Este documento apresenta o resumo de um livro sobre topografia e geodésia. A primeira seção introduz os objetivos iniciais da obra de auxiliar os estudos de disciplinas topográficas e contribuir com a literatura das ciências geodésicas e topográficas. O autor agradece ao CEFET Minas Gerais pelo apoio. A segunda seção apresenta os agradecimentos do revisor da segunda edição pela oportunidade de colaborar com o trabalho, reconhecendo o esforço do autor original em criar uma fonte de consulta val
Este documento apresenta um resumo dos novos padrões da violência homicida no Brasil nas últimas três décadas com base em dados de 1980 a 2012. Ele analisa a evolução dos homicídios nas unidades federativas, capitais, regiões metropolitanas e municípios brasileiros e discute a disseminação, interiorização e deslocamento geográfico da violência para novas regiões. O documento também examina questões de gênero, raça e a vitimização de jovens pela violência homicida.
Este manual introduz o uso do Moodle para professores e tutores, descrevendo como criar e gerenciar cursos na plataforma da UFRGS. Ele explica a interface do Moodle, como adicionar conteúdos e atividades, e fornece um roteiro básico para criação e administração de um curso.
Este documento discute a metodologia e prática do ensino da matemática nas séries iniciais. Ele apresenta os principais desafios do processo de ensino e aprendizagem da matemática e enfatiza a importância de abordagens que privilegiem a resolução de problemas reais, o desenvolvimento do raciocínio lógico e a construção de conceitos pelos alunos. Além disso, discute as mudanças nos currículos que visam uma concepção mais ampla da matemática e do papel do professor.
1. This document provides an introduction to project management by discussing the evolution of management approaches from the industrial era to the current knowledge era.
2. It introduces the textbook on project management being offered by Unisa Digital to students, which will cover basic concepts and practices of modern project management.
3. The introduction explains that resources such as online chats, forums, libraries and email are available to support students' autonomous learning about project management.
Desenvolvimento de um portal para assinatura digital de arquivosJhonatas Lima
Este documento propõe o desenvolvimento de um portal para assinatura digital de arquivos. O portal permitiria armazenar documentos digitalmente e realizar a assinatura digital dos mesmos a partir das informações do certificado digital do usuário, validando também o certificado junto à autoridade certificadora, garantindo assim a validade jurídica dos documentos após o armazenamento e assinatura.
Este documento descreve um projeto de implementação de sessões de formação em regime de elearning (eworkshops) utilizando ferramentas da web 2.0. O projeto teve como objetivo disponibilizar sessões de formação sobre ferramentas digitais para educadores em diferentes modalidades, inicialmente com tutoria e posteriormente em regime aberto. As sessões foram desenvolvidas na plataforma Moodle e incluíram recursos síncronos. O documento detalha o enquadramento teórico, desenvolvimento das ferramentas, metodologia aplicada e
Relatório descritivo do curso de Educação a Distância: Construindo um Pro...Caio Moreno
Relatório descritivo do curso de Educação a Distância: Construindo um Projeto de Voluntariado Educativo.
Este relatório é parte do Trabalho de Conclusão do Curso de Graduação em Tecnologia e Mídias Digitais com Habilitação em Educação a Distância da Pontifícia Universidade Católica de São Paulo. Trata-se do projeto de curso-piloto na modalidade de Educação a Distância do Instituto Faça Parte, cujo título é: “Construindo um Projeto de Voluntariado Educativo”.
Relatamos a trajetória percorrida para a elaboração deste curso: as atividades de análise e planejamento, o desenho de instrução, o desenvolvimento, a produção, a implantação e o acompanhamento.
Caio Moreno de Souza
Deleni Mesquita
Fundamentos de topografia tuler & saraivaDanielle Galvão
Este documento apresenta o resumo de um livro sobre topografia e geodésia. A primeira seção introduz os objetivos iniciais da obra de auxiliar os estudos de disciplinas topográficas e contribuir com a literatura das ciências geodésicas e topográficas. O autor agradece ao CEFET Minas Gerais pelo apoio. A segunda seção apresenta os agradecimentos do revisor da segunda edição pela oportunidade de colaborar com o trabalho, reconhecendo o esforço do autor original em criar uma fonte de consulta val
Este documento apresenta um resumo dos novos padrões da violência homicida no Brasil nas últimas três décadas com base em dados de 1980 a 2012. Ele analisa a evolução dos homicídios nas unidades federativas, capitais, regiões metropolitanas e municípios brasileiros e discute a disseminação, interiorização e deslocamento geográfico da violência para novas regiões. O documento também examina questões de gênero, raça e a vitimização de jovens pela violência homicida.
Documento Final da Primeira Oficina para Inclusão Digital_ Maio2001Catherine Henry
1. O documento apresenta diretrizes e propostas para a inclusão digital no Brasil.
2. As diretrizes incluem priorizar as crianças, envolver a educação formal e a sociedade civil, e estabelecer regras claras para o uso de recursos públicos.
3. As propostas incluem disponibilizar acesso à internet e email para todos, oferecer tarifas reduzidas de telecomunicações, e criar conselhos para orientar as ações de inclusão digital.
Este documento fornece uma introdução à história da psicologia, suas fases e escolas. Resume os principais pontos como: 1) A definição de psicologia e seu surgimento; 2) A distinção entre senso comum e psicologia científica; 3) As diferentes áreas do conhecimento que contribuíram para o desenvolvimento da psicologia ao longo do tempo, como filosofia, religião, arte e ciências. O texto introduz os tópicos que serão discutidos nos próximos capítulos.
Este documento é uma apostila sobre noções básicas de informática e o sistema operacional Windows. Apresenta conceitos como hardware, software, teclado, mouse e ambientes do Windows como área de trabalho, ícones e pastas. Inclui atividades práticas no Paint, Windows Explorer, WordPad e Calculadora para exercitar os alunos.
Este documento é uma apostila introdutória sobre informática e o sistema operacional Windows. Ele fornece conceitos básicos sobre informática, hardware, software e a história da evolução dos computadores. Também ensina sobre os principais componentes de um computador e apresenta alguns aplicativos do Windows como Paint, WordPad e Calculadora.
1) O documento apresenta um material de apoio para um curso de C/C++ realizado na Faculdade de Engenharia de Ilha Solteira entre os dias 21 e 25 de fevereiro de 2011.
2) O material contém informações sobre estrutura básica de programas em C/C++, variáveis, tipos de dados, operadores, estruturas de controle e outros tópicos fundamentais da linguagem.
3) O conteúdo foi retirado integralmente do website cplusplus.com e adaptado para o curso.
Este manual fornece orientações sobre cálculos trabalhistas, como liquidação de sentenças e atualização monetária. Apresenta verbas trabalhistas como aviso prévio, férias, horas extras e seus reflexos. Fornece detalhes sobre atualização monetária, juros de mora, encargos processuais e descontos legais. Tem como objetivo auxiliar calculistas, advogados e partes no processo.
Este boletim de serviços apresenta informações sobre a composição da equipe diretiva do Centro de Ciências da Administração e Socioeconômicas (ESAG) da Universidade do Estado de Santa Catarina (UDESC), resumos das resoluções publicadas pelos conselhos vinculados à ESAG no terceiro quadrimestre de 2011, e as principais ações desenvolvidas nas áreas de ensino, pesquisa, extensão e administração da ESAG no período.
Manual do Professor formador - Profuncionário (Moodle IFG)Milton Azara
Este documento fornece um manual para professores sobre como usar a plataforma Moodle do Instituto Federal de Goiás. Ele explica os principais recursos e ferramentas da plataforma, como navegar na página inicial, criar salas virtuais, adicionar atividades e recursos, lançar notas, e mais. O documento serve como uma referência completa para professores usarem a plataforma de maneira eficaz.
O documento descreve uma monografia apresentada para conclusão de curso de graduação em Ciência da Computação. A monografia propõe um conjunto de exemplos de programação organizados em taxonomias hierárquicas para serem integrados a um sistema tutorial online, visando melhorar a adaptabilidade do sistema aos diferentes ritmos de aprendizagem dos alunos.
Este documento apresenta um manual de normatização para trabalhos acadêmicos da Faculdade Ideal (FACI). O manual fornece instruções sobre a estrutura, formatação e citações em trabalhos acadêmicos. Ele discute elementos pré-textuais, textuais e pós-textuais, bem como a apresentação gráfica, tipos de citações e referências bibliográficas. O manual foi desenvolvido para orientar estudantes e professores da FACI na elaboração de trabalhos de graduação e pós-graduação.
Este manual fornece informações sobre fotografia digital, abordando tópicos como:
- As partes fundamentais de uma câmara digital e suas funções, como abertura, velocidade do obturador e focagem.
- Técnicas fotográficas como composição, iluminação e processamento de imagens.
- Formas de impressão, partilha e processamento avançado de fotografias digitais.
- Glossário de termos técnicos comuns em fotografia digital.
O documento fornece instruções sobre como usar o software Treinus para planejamento e acompanhamento de treinos de atletas. Ele descreve os recursos como planilhas de treinos planejados e realizados, ciclos de treinamento, gráficos de desempenho, cadastro de percursos e equipamentos, calendário de eventos, gerenciamento de perfis de atletas e equipe.
Este relatório descreve o desenvolvimento de um software de gestão de estudantes para o projeto Coração Tropical Universidade de Belas. O software foi criado usando Java e MySQL para armazenar dados de estudantes, cursos, inscrições e outras informações relevantes. O objetivo é agilizar a gestão de dados e permitir o acesso a informações de forma mais eficiente do que a folha de cálculo anteriormente usada. O relatório detalha os requisitos, modelo de dados, design do sistema e funcionalidades implementadas no software.
Este documento apresenta um guia do curso Introdução à Educação Digital oferecido pelo Ministério da Educação brasileiro. O curso visa promover a inclusão digital de professores e gestores escolares ensinando-os sobre tecnologias da informação e comunicação. O guia contém três mensagens: uma de apresentação do curso, uma de boas-vindas aos cursistas e uma com orientações sobre o curso.
O documento descreve as cinco etapas básicas da programação: 1) Identificação de um problema do mundo real, 2) Confecção do algoritmo, 3) Teste do algoritmo, 4) Confecção do programa de computador, 5) Execução do programa no computador. A professora explica cada etapa e fornece exemplos para ilustrar o processo de programação.
Do alto para o baixo nível - Entendendo as DiferençasWelington Sampaio
O documento discute as diferenças entre linguagens de alto e baixo nível, usando GoLang, Node.js e PHP 5.5 como exemplos. Realiza testes de performance desses três scripts em loops de ordenação para comparar seus tempos de resposta.
Este documento discute algoritmos e lógica de programação. Primeiro, define algoritmos como sequências lógicas de passos para resolver problemas e apresenta exemplos simples. Em seguida, discute conceitos como variáveis, constantes, operadores e estruturas de controle para construir algoritmos. Finalmente, fornece dicas para projetar algoritmos de forma estruturada e lógica.
Este documento apresenta um livro didático sobre Lógica de Programação com sete aulas. O livro introduz conceitos básicos de lógica de programação, linguagens de programação, algoritmos, variáveis, estruturas condicionais e de repetição.
1. O documento discute as cinco etapas da programação: identificação do problema, confecção do algoritmo, teste do algoritmo, confecção do programa de computador e execução do programa no computador.
2. É destacada a importância da programação estruturada para produzir programas confiáveis, de fácil manutenção e legíveis.
3. Exemplos ilustram cada etapa, incluindo algoritmos e programas para calcular o preço de combustível e verificar aprovação de aluno.
O documento descreve o protocolo MODBUS, incluindo seu funcionamento em linhas seriais e os modos de transmissão RTU e ASCII. O protocolo MODBUS define comunicação cliente-servidor entre dispositivos conectados a diferentes barramentos ou redes, e especifica um protocolo de comunicação serial entre um mestre e um ou mais escravos.
O documento discute linguagens de programação de alto e baixo nível. Apresenta que linguagens de alto nível são mais próximas da linguagem natural e permitem aos programadores esquecer os detalhes da máquina, enquanto linguagens de baixo nível são dependentes da máquina e programas nelas não podem ser executados em outras máquinas. Também menciona que existem 5 gerações de linguagens e que linguagens de alto nível surgiram na terceira geração.
Lógica e Matemática Computacional - Exercícios 01thomasdacosta
Este documento presenta 14 expresiones lógicas proposicionales con diferentes conectivos como conjunción, disyunción, negación, implicación y equivalencia. También solicita resolver las tablas de verdad de estas expresiones de acuerdo con el tipo de conectivo utilizado en cada una. El documento es parte de un curso de Lógica y Matemática Computacional y fue escrito por el profesor Thomás da Costa.
Documento Final da Primeira Oficina para Inclusão Digital_ Maio2001Catherine Henry
1. O documento apresenta diretrizes e propostas para a inclusão digital no Brasil.
2. As diretrizes incluem priorizar as crianças, envolver a educação formal e a sociedade civil, e estabelecer regras claras para o uso de recursos públicos.
3. As propostas incluem disponibilizar acesso à internet e email para todos, oferecer tarifas reduzidas de telecomunicações, e criar conselhos para orientar as ações de inclusão digital.
Este documento fornece uma introdução à história da psicologia, suas fases e escolas. Resume os principais pontos como: 1) A definição de psicologia e seu surgimento; 2) A distinção entre senso comum e psicologia científica; 3) As diferentes áreas do conhecimento que contribuíram para o desenvolvimento da psicologia ao longo do tempo, como filosofia, religião, arte e ciências. O texto introduz os tópicos que serão discutidos nos próximos capítulos.
Este documento é uma apostila sobre noções básicas de informática e o sistema operacional Windows. Apresenta conceitos como hardware, software, teclado, mouse e ambientes do Windows como área de trabalho, ícones e pastas. Inclui atividades práticas no Paint, Windows Explorer, WordPad e Calculadora para exercitar os alunos.
Este documento é uma apostila introdutória sobre informática e o sistema operacional Windows. Ele fornece conceitos básicos sobre informática, hardware, software e a história da evolução dos computadores. Também ensina sobre os principais componentes de um computador e apresenta alguns aplicativos do Windows como Paint, WordPad e Calculadora.
1) O documento apresenta um material de apoio para um curso de C/C++ realizado na Faculdade de Engenharia de Ilha Solteira entre os dias 21 e 25 de fevereiro de 2011.
2) O material contém informações sobre estrutura básica de programas em C/C++, variáveis, tipos de dados, operadores, estruturas de controle e outros tópicos fundamentais da linguagem.
3) O conteúdo foi retirado integralmente do website cplusplus.com e adaptado para o curso.
Este manual fornece orientações sobre cálculos trabalhistas, como liquidação de sentenças e atualização monetária. Apresenta verbas trabalhistas como aviso prévio, férias, horas extras e seus reflexos. Fornece detalhes sobre atualização monetária, juros de mora, encargos processuais e descontos legais. Tem como objetivo auxiliar calculistas, advogados e partes no processo.
Este boletim de serviços apresenta informações sobre a composição da equipe diretiva do Centro de Ciências da Administração e Socioeconômicas (ESAG) da Universidade do Estado de Santa Catarina (UDESC), resumos das resoluções publicadas pelos conselhos vinculados à ESAG no terceiro quadrimestre de 2011, e as principais ações desenvolvidas nas áreas de ensino, pesquisa, extensão e administração da ESAG no período.
Manual do Professor formador - Profuncionário (Moodle IFG)Milton Azara
Este documento fornece um manual para professores sobre como usar a plataforma Moodle do Instituto Federal de Goiás. Ele explica os principais recursos e ferramentas da plataforma, como navegar na página inicial, criar salas virtuais, adicionar atividades e recursos, lançar notas, e mais. O documento serve como uma referência completa para professores usarem a plataforma de maneira eficaz.
O documento descreve uma monografia apresentada para conclusão de curso de graduação em Ciência da Computação. A monografia propõe um conjunto de exemplos de programação organizados em taxonomias hierárquicas para serem integrados a um sistema tutorial online, visando melhorar a adaptabilidade do sistema aos diferentes ritmos de aprendizagem dos alunos.
Este documento apresenta um manual de normatização para trabalhos acadêmicos da Faculdade Ideal (FACI). O manual fornece instruções sobre a estrutura, formatação e citações em trabalhos acadêmicos. Ele discute elementos pré-textuais, textuais e pós-textuais, bem como a apresentação gráfica, tipos de citações e referências bibliográficas. O manual foi desenvolvido para orientar estudantes e professores da FACI na elaboração de trabalhos de graduação e pós-graduação.
Este manual fornece informações sobre fotografia digital, abordando tópicos como:
- As partes fundamentais de uma câmara digital e suas funções, como abertura, velocidade do obturador e focagem.
- Técnicas fotográficas como composição, iluminação e processamento de imagens.
- Formas de impressão, partilha e processamento avançado de fotografias digitais.
- Glossário de termos técnicos comuns em fotografia digital.
O documento fornece instruções sobre como usar o software Treinus para planejamento e acompanhamento de treinos de atletas. Ele descreve os recursos como planilhas de treinos planejados e realizados, ciclos de treinamento, gráficos de desempenho, cadastro de percursos e equipamentos, calendário de eventos, gerenciamento de perfis de atletas e equipe.
Este relatório descreve o desenvolvimento de um software de gestão de estudantes para o projeto Coração Tropical Universidade de Belas. O software foi criado usando Java e MySQL para armazenar dados de estudantes, cursos, inscrições e outras informações relevantes. O objetivo é agilizar a gestão de dados e permitir o acesso a informações de forma mais eficiente do que a folha de cálculo anteriormente usada. O relatório detalha os requisitos, modelo de dados, design do sistema e funcionalidades implementadas no software.
Este documento apresenta um guia do curso Introdução à Educação Digital oferecido pelo Ministério da Educação brasileiro. O curso visa promover a inclusão digital de professores e gestores escolares ensinando-os sobre tecnologias da informação e comunicação. O guia contém três mensagens: uma de apresentação do curso, uma de boas-vindas aos cursistas e uma com orientações sobre o curso.
O documento descreve as cinco etapas básicas da programação: 1) Identificação de um problema do mundo real, 2) Confecção do algoritmo, 3) Teste do algoritmo, 4) Confecção do programa de computador, 5) Execução do programa no computador. A professora explica cada etapa e fornece exemplos para ilustrar o processo de programação.
Do alto para o baixo nível - Entendendo as DiferençasWelington Sampaio
O documento discute as diferenças entre linguagens de alto e baixo nível, usando GoLang, Node.js e PHP 5.5 como exemplos. Realiza testes de performance desses três scripts em loops de ordenação para comparar seus tempos de resposta.
Este documento discute algoritmos e lógica de programação. Primeiro, define algoritmos como sequências lógicas de passos para resolver problemas e apresenta exemplos simples. Em seguida, discute conceitos como variáveis, constantes, operadores e estruturas de controle para construir algoritmos. Finalmente, fornece dicas para projetar algoritmos de forma estruturada e lógica.
Este documento apresenta um livro didático sobre Lógica de Programação com sete aulas. O livro introduz conceitos básicos de lógica de programação, linguagens de programação, algoritmos, variáveis, estruturas condicionais e de repetição.
1. O documento discute as cinco etapas da programação: identificação do problema, confecção do algoritmo, teste do algoritmo, confecção do programa de computador e execução do programa no computador.
2. É destacada a importância da programação estruturada para produzir programas confiáveis, de fácil manutenção e legíveis.
3. Exemplos ilustram cada etapa, incluindo algoritmos e programas para calcular o preço de combustível e verificar aprovação de aluno.
O documento descreve o protocolo MODBUS, incluindo seu funcionamento em linhas seriais e os modos de transmissão RTU e ASCII. O protocolo MODBUS define comunicação cliente-servidor entre dispositivos conectados a diferentes barramentos ou redes, e especifica um protocolo de comunicação serial entre um mestre e um ou mais escravos.
O documento discute linguagens de programação de alto e baixo nível. Apresenta que linguagens de alto nível são mais próximas da linguagem natural e permitem aos programadores esquecer os detalhes da máquina, enquanto linguagens de baixo nível são dependentes da máquina e programas nelas não podem ser executados em outras máquinas. Também menciona que existem 5 gerações de linguagens e que linguagens de alto nível surgiram na terceira geração.
Lógica e Matemática Computacional - Exercícios 01thomasdacosta
Este documento presenta 14 expresiones lógicas proposicionales con diferentes conectivos como conjunción, disyunción, negación, implicación y equivalencia. También solicita resolver las tablas de verdad de estas expresiones de acuerdo con el tipo de conectivo utilizado en cada una. El documento es parte de un curso de Lógica y Matemática Computacional y fue escrito por el profesor Thomás da Costa.
Este documento descreve o VisuAlg, um editor e interpretador de pseudocódigos desenvolvido para auxiliar no ensino de lógica de programação. O VisuAlg fornece um ambiente gráfico simples para escrever, executar e depurar algoritmos, simulando entradas, saídas e valores de variáveis. Seu objetivo é tornar o aprendizado de programação mais acessível para iniciantes.
Apostila 2 conceitos de hardware e softwarePaulo Fonseca
[1] O documento descreve conceitos básicos de hardware e software, incluindo componentes de hardware como processador, memória e dispositivos de entrada e saída, além de conceitos de software como tradutor, interpretador e sistema operacional. [2] Também discute arquiteturas de sistemas, memória cache e principal, barramentos, linguagem de máquina e as arquiteturas RISC e CISC. [3] O documento fornece informações gerais sobre esses tópicos fundamentais de sistemas operacionais e arquitetura de
O documento descreve os principais símbolos utilizados em fluxogramas, incluindo símbolos para início, dispositivos de entrada e saída, processamento, decisão, repetição e fim. O fluxograma é uma representação gráfica de algoritmos que utiliza símbolos padronizados para representar ações.
O documento discute fundamentos de computação e software, definindo software como lógico em oposição a hardware que é físico. Explora os tipos de software como programas, documentação e sistemas operacionais, e como as linguagens de programação permitem escrever software para computadores.
O documento discute os conceitos de compiladores, interpretadores e linkagem no contexto da programação. Explica que compiladores transformam programas de alto nível em código de máquina, enquanto interpretadores fazem isso linha a linha. A linkagem une código objeto e bibliotecas para criar programas executáveis.
Estrutura de Dados e Algoritmos com Java #01: IntroducaoLoiane Groner
O documento apresenta um curso sobre estruturas de dados e algoritmos com Java. Ele discute a importância de aprender esses tópicos, os requisitos para o curso e seu conteúdo, que inclui estruturas como vetores, pilhas, filas e algoritmos de ordenação e busca.
Algoritmos e Técnicas de Programação - Aula 01thomasdacosta
O documento apresenta o professor Thomás da Costa, que lecionará a disciplina de Algoritmos e Técnicas de Programação. Apresenta sua formação acadêmica e experiência profissional, além do conteúdo programático, bibliografias utilizadas e avisos sobre a aula.
Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. Linguagens de programação podem ser usadas para expressar algoritmos com precisão.
This document is a Haiku Deck presentation containing 10 photos credited to various photographers. It encourages the viewer to get inspired by the photos and create their own Haiku Deck presentation on SlideShare.
O documento apresenta o plano de ensino de uma disciplina de algoritmos. Ele inclui tópicos como conceitos de algoritmos, elaboração de algoritmos, estruturas condicionais e de repetição, variáveis, implementação de algoritmos, arquivos e métodos de avaliação.
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
O documento apresenta o professor Thomás da Costa, que ministrará o curso de Algoritmos e Técnicas de Programação. Apresenta as credenciais acadêmicas e experiência profissional do professor. Também descreve o conteúdo programático do curso, que inclui fundamentos de algoritmos, estruturas de controle, estruturas de dados e linguagens de programação.
Aula 3 - Algoritmos computacionais - parte 1Pacc UAB
Este documento apresenta os conceitos básicos de algoritmos computacionais na linguagem PORTUGOL. Ele aborda os objetivos de aprender a escrever algoritmos, sintaxe de entrada e saída de dados, e operadores na linguagem. Também explica a técnica de interpretação de enunciados, declaração de variáveis, tipos de dados, operadores básicos e fornece um exemplo completo de algoritmo para calcular a média de 3 notas.
Este documento fornece uma introdução aos algoritmos e à linguagem de programação C. Discute o que são algoritmos e como eles podem ser expressos em linguagens de programação. Também apresenta os principais conceitos da linguagem C, incluindo tipos de dados, operadores, comandos condicionais e de repetição. O objetivo é capacitar os alunos a escrever seus primeiros programas em C.
Este documento é uma apostila sobre Eletrotécnica Geral destinada a estudantes de cursos de engenharia a distância. A apostila introduz conceitos básicos de eletricidade como carga elétrica, campo elétrico, potencial elétrico, capacitância, corrente elétrica e resistência elétrica. Além disso, fornece exercícios resolvidos para auxiliar na compreensão dos tópicos e atividades propostas para fixação do conteúdo.
1. O documento apresenta uma introdução às teorias da administração, discutindo seu surgimento e desenvolvimento ao longo do tempo.
2. Aborda as principais teorias da administração, como a teoria clássica, as relações humanas e a administração científica, e como cada uma surgiu para resolver problemas de sua época.
3. Discutem-se também os conceitos de burocracia, autoridade e responsabilidade nas organizações segundo autores como Weber e Morgan.
Este documento fornece instruções para estagiários sobre como gerenciar uma sala de internet em uma escola. Explica que o software BlueControl deve ser usado para liberar o acesso aos computadores para usuários autorizados, organizar filas de espera e registrar incidentes. Também descreve como identificar e ligar os equipamentos da sala, como o switch e a estação administrativa, e como fazer login no BlueControl para começar a gerenciar a sala.
Este documento fornece instruções para estagiários sobre como gerenciar uma sala de internet em uma escola. Ele explica que o estagiário deve usar o software BlueControl para ligar os computadores, registrar os usuários e organizar a fila de espera. Também descreve como identificar a estação administrativa e o que fazer se houver problemas técnicos.
O documento apresenta o guia do formador para o curso "Tecnologias na Educação: ensinando e aprendendo com as TICs". O guia descreve o perfil dos cursistas, as bases e pressupostos do curso, a proposta curricular, o desenho do currículo com as unidades de estudo e seus objetivos. Também apresenta os materiais de ensino e mídias utilizadas, a organização do tempo e dos encontros presenciais, a avaliação e certificação. O guia visa orientar os formadores na mediação do curso.
Este manual de formação para professores aborda o tema da Internet e como pode ser usada em contexto educativo. O documento começa explicando o que é a informática e computadores, introduz o conceito de redes e o que é especificamente a Internet, que consiste em milhares de redes interligadas globalmente. Explora os serviços disponíveis na Internet como o correio eletrónico e a World Wide Web, e como estes podem ser usados em sala de aula.
Este documento fornece informações sobre o programa Quanta Plus, incluindo como instalá-lo e usá-lo. Também discute configurações, menus, trabalhos com projetos e criação de modelos.
1. O documento apresenta uma apostila sobre ciências do meio ambiente para alunos de engenharia de uma universidade a distância.
2. A apostila aborda temas como ecologia, ecossistemas, ciclos biogeoquímicos, meio ambiente, ar, solo, água e recursos naturais.
3. O objetivo é fornecer noções básicas sobre esses assuntos para contribuir na formação profissional dos engenheiros.
O documento apresenta um caderno de estudos sobre segurança, meio ambiente e saúde desenvolvido pela Universidade Estadual do Maranhão para o sistema e-Tec Brasil. O caderno contém quatro aulas abordando tópicos como segurança no trabalho, legislação, primeiros socorros e gerenciamento ambiental. Inclui também apresentações, projeto instrucional, referências e currículo do professor-autor.
O documento descreve um plano de ensino para um curso sobre servidores de email seguros. O plano inclui objetivos, público-alvo, pré-requisitos, cronograma e avaliação do curso. Além disso, aborda tópicos como instalação, configuração e integração de ferramentas de email seguro como AMaViSd-new, ClamAV e SpamAssassin.
Este manual fornece instruções sobre o uso do sistema de gestão escolar i-Educar. Ele explica como acessar o sistema, navegar entre os menus e cadastros, realizar buscas, inserir e editar dados. Além disso, detalha os principais módulos e cadastros do sistema para gestão de alunos, professores, matrículas, notas, entre outros processos escolares.
Este documento fornece informações sobre o iptables, incluindo seu objetivo, público-alvo, pré-requisitos e programa. Ele explica o que é o iptables e sua função como firewall no Linux, além de descrever suas tabelas principais e sintaxe de uso.
1) O relatório avalia a implementação e o impacto do Programa Mais Sucesso Escolar (PMSE) em Portugal.
2) A avaliação analisou os recursos e atividades organizacionais e pedagógicas nas escolas do PMSE versus escolas de controlo.
3) Os resultados indicam que o PMSE teve impacto positivo em vários domínios, como taxas de sucesso escolar, qualidade do sucesso, e avaliações externas, mas o nível de implementação variou entre escolas.
1) O relatório avalia a implementação e o impacto do Programa Mais Sucesso Escolar (PMSE) em Portugal.
2) A avaliação analisou as atividades e estratégias do PMSE, bem como seu impacto em indicadores de desempenho escolar e componentes organizacionais nas escolas intervencionadas.
3) Os resultados indicaram que o PMSE foi implementado conforme planejado, com impactos positivos nas taxas de sucesso escolar e qualidade do desempenho, embora seu efeito tenha variado entre escolas.
Este documento apresenta um curso básico sobre Java. Ele inclui seções sobre o que é Java, conceitos básicos como classes, objetos e métodos, estruturas de controle e entrada/saída, e conceitos avançados como herança e polimorfismo. O documento também fornece informações sobre licenças e créditos.
O documento discute o protocolo XDMCP (X Display Manager Control Protocol), incluindo sua história, instalação e configuração. Fornece detalhes sobre como usar o XDMCP via GDM para gerenciar displays remotos.
Este documento fornece uma introdução sobre fundamentos de contabilidade e contabilidade básica, incluindo a origem e evolução da contabilidade, seus objetivos, usuários e princípios fundamentais. Também apresenta noções básicas sobre patrimônio, métodos contábeis e balanços patrimoniais.
O documento discute vários métodos e ferramentas para monitoramento de sistemas, incluindo TCPDUMP para captura de pacotes de rede, Nagios para monitoramento ativo de serviços, e MRTG e Cacti para monitoramento gráfico de tráfego de rede. Ele também aborda logs de sistema e arquivos para rastreamento de eventos.
Este documento fornece informações sobre o Java 2 Micro Edition (J2ME), incluindo seu objetivo, público-alvo, pré-requisitos, descrição do plano de ensino, metodologia, cronograma, programa, avaliação e bibliografia. Ele também discute tópicos como introdução ao J2ME, sua instalação, história, arquitetura e como criar o primeiro programa.
Atividade letra da música - Espalhe Amor, Anavitória.Mary Alvarenga
A música 'Espalhe Amor', interpretada pela cantora Anavitória é uma celebração do amor e de sua capacidade de transformar e conectar as pessoas. A letra sugere uma reflexão sobre como o amor, quando verdadeiramente compartilhado, pode ultrapassar barreiras alcançando outros corações e provocando mudanças positivas.
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Biblioteca UCS
A biblioteca abriga, em seu acervo de coleções especiais o terceiro volume da obra editada em Lisboa, em 1843. Sua exibe
detalhes dourados e vermelhos. A obra narra um romance de cavalaria, relatando a
vida e façanhas do cavaleiro Clarimundo,
que se torna Rei da Hungria e Imperador
de Constantinopla.
1. Elisamara de Oliveira
Algoritmos e
Linguagem de
Programação
Revisada por Clausia Mara Antoneli (janeiro/2013)
2. APRESENTAÇÃO
É com satisfação que a Unisa Digital oferece a você, aluno(a), esta apostila de Algoritmos e Lingua-gem
de Programação, parte integrante de um conjunto de materiais de pesquisa voltado ao aprendizado
dinâmico e autônomo que a educação a distância exige. O principal objetivo desta apostila é propiciar
aos(às) alunos(as) uma apresentação do conteúdo básico da disciplina.
A Unisa Digital oferece outras formas de solidificar seu aprendizado, por meio de recursos multidis-ciplinares,
como chats, fóruns, aulas web, material de apoio e e-mail.
Para enriquecer o seu aprendizado, você ainda pode contar com a Biblioteca Virtual: www.unisa.br,
a Biblioteca Central da Unisa, juntamente às bibliotecas setoriais, que fornecem acervo digital e impresso,
bem como acesso a redes de informação e documentação.
Nesse contexto, os recursos disponíveis e necessários para apoiá-lo(a) no seu estudo são o suple-mento
que a Unisa Digital oferece, tornando seu aprendizado eficiente e prazeroso, concorrendo para
uma formação completa, na qual o conteúdo aprendido influencia sua vida profissional e pessoal.
A Unisa Digital é assim para você: Universidade a qualquer hora e em qualquer lugar!
Unisa Digital
3. SUMÁRIO
INTRODUÇÃO................................................................................................................................................ 5
1 ALGORITMOS............................................................................................................................................ 7
1.1 O que é um Algoritmo?..................................................................................................................................................7
1.2 Conceitos Básicos da Programação de Computadores.....................................................................................9
1.3 Etapas da Programação de Computadores.........................................................................................................12
1.4 Expressão de Algoritmos ...........................................................................................................................................13
1.5 Os Algoritmos serão Expressos em Pseudolinguagem..................................................................................18
1.6 Resumo do Capítulo.....................................................................................................................................................19
1.7 Atividade Proposta........................................................................................................................................................19
2 PSEUDOLINGUAGEM DE PROGRAMAÇÃO: PORTUCÊ.............................................. 21
2.1 Identificadores................................................................................................................................................................21
2.2 Tipos Básicos e Declaração de Variáveis................................................................................................................22
2.3 Comando de Atribuição..............................................................................................................................................23
2.4 Operadores Aritméticos .............................................................................................................................................24
2.5 Operadores Lógicos .....................................................................................................................................................25
2.6 Operadores Relacionais..............................................................................................................................................28
2.7 Comando Condicional.................................................................................................................................................29
2.8 Comando de Repetição..............................................................................................................................................31
2.9 Comandos de Entrada e Saída..................................................................................................................................33
2.10 Separador de Comandos ........................................................................................................................................37
2.11 Comentários..................................................................................................................................................................37
2.12 Bloco de Programa.....................................................................................................................................................38
2.13 Resumo do Capítulo..................................................................................................................................................41
3 CONSTRUÇÃO DE ALGORITMOS EM PORTUCÊ: PRATICANDO OS
COMANDOS E FAZENDO CÁLCULOS.....................................................................................43
3.1 Declaração de Variáveis – Comandos “leia” e “imprima”.................................................................................43
3.2 Comando Condicional “se”.........................................................................................................................................44
3.3 Bloco de Programa........................................................................................................................................................45
3.4 Operações Básicas com Números...........................................................................................................................46
3.5 Operações com Operadores Lógicos e Relacionais..........................................................................................49
3.6 Resumo do Capítulo.....................................................................................................................................................51
3.7 Atividades Propostas....................................................................................................................................................51
4 METODOLOGIA PARA A CONSTRUÇÃO DE ALGORITMOS.................................... 55
4.1 Os Passos da Metodologia.........................................................................................................................................55
4.2 Solução de Exercícios utilizando a Metodologia...............................................................................................57
4.3 Resumo do Capítulo.....................................................................................................................................................57
4.4 Atividades Propostas....................................................................................................................................................58
4. 5 A LINGUAGEM DE PROGRAMAÇÃO C................................................................................... 61
5.1 Tipos Básicos e Declaração de Variáveis em C....................................................................................................61
5.2 Operadores de Atribuição, Aritméticos, Relacionais e Lógicos (Binários) em C ...................................62
5.3 Comando Condicional em C (if)...............................................................................................................................65
5.4 Comando de Seleção Múltipla em C (switch).....................................................................................................68
5.5 Comando de Repetição em C (while).....................................................................................................................71
5.6 Comando de Repetição em C (for)..........................................................................................................................72
5.7 Comandos de Leitura e Escrita em C .....................................................................................................................76
5.8 Comentários em C ........................................................................................................................................................79
5.9 Bloco de Programa em C ...........................................................................................................................................79
5.10 Funções Úteis em C....................................................................................................................................................81
5.11 Tradução de PortuCê para a Linguagem C........................................................................................................84
5.12 Resumo do Capítulo..................................................................................................................................................89
5.13 Atividades Propostas.................................................................................................................................................89
6 USANDO COMANDOS DE REPETIÇÃO EM C.................................................................... 91
6.1 Comando de Repetição – Entrada Indeterminada de Dados (uso de flags)...........................................91
6.2 Comando de Repetição – Entrada de Dados Determinada..........................................................................94
6.3 Exemplo dos Minutos Telefônicos...........................................................................................................................96
6.4 Exemplo do Preço Final de Automóveis.............................................................................................................100
6.5 Exemplo da Eleição.....................................................................................................................................................104
6.6 Exemplo da Série Numérica....................................................................................................................................108
6.7 Resumo do Capítulo...................................................................................................................................................112
6.8 Atividades Propostas..................................................................................................................................................112
7 OUTROS PROGRAMAS EM C......................................................................................................119
8 PRÁTICA EM LABORATÓRIO.......................................................................................................127
8.1 Estudo Dirigido............................................................................................................................................................ 127
9 CONSIDERAÇÕES FINAIS..............................................................................................................131
RESPOSTAS COMENTADAS DAS ATIVIDADES PROPOSTAS....................................133
REFERÊNCIAS............................................................................................................................................175
5. Unisa | Educação a Distância | www.unisa.br
5
INTRODUÇÃO
Esta apostila se refere à disciplina Algoritmos e Linguagem de Programação do curso de Engenha-ria
de Produção, na modalidade a distância, da Unisa.
O objetivo desta disciplina é capacitar você, caro(a) aluno(a), a fazer os primeiros programas de
computador utilizando uma linguagem de programação. Escrever programas de computador é uma ta-refa
muito interessante, instigante e desafiadora! Vamos começar entendendo o que é um algoritmo,
que é um roteiro com instruções sequenciais para se resolver um problema ou se realizar alguma tarefa.
É como uma receita de bolo, que indica os ingredientes e as instruções para se fazer o bolo passo a passo.
Usando essa analogia, os ingredientes seriam os dados, os passos seriam as instruções do programa e o
forno para assar o bolo seria o computador!
O universo dos computadores é muito simples, muito limitado, mas muito poderoso: tudo se ba-seia
na base 2, que possui apenas 2 algarismos: 0 e 1. Esses dois dígitos binários, ou bits, formam a lingua-gem
de máquina, que é a única linguagem que o computador digital entende. Mas nós vamos aprender
a escrever as instruções dos nossos programas numa linguagem de programação chamada C, que é mais
próxima da nossa linguagem de comunicação. Nós nos comunicamos em Português, certo? Então vamos
começar a escrever nossos primeiros algoritmos em PortuCê, uma pseudolinguagem, e depois traduzi-
-los para um programa em linguagem C. Isso ainda não resolve nosso problema: para que o computador
possa executar nosso programa em C, ele precisa ser traduzido para linguagem de máquina! Mas isso
será feito facilmente pelo compilador C, um programa que faz exatamente isso: traduz programas em C
para instruções binárias (linguagem de máquina).
Como você pode ver, será um belo desafio! Então, caro(a) aluno(a), afie seu raciocínio lógico e pre-pare-
se para entrar num mundo em que a lógica será o carro-chefe! Não tema nada, pois tudo será
ensinado de forma simples e didática... Mais algumas páginas à frente e você já estará programando seu
computador!
Profa. Dra. Elisamara de Oliveira
6. “Programar é construir algoritmos.”
“Programa = algoritmo + estruturas de dados.”
“No processo de construção de programas, a formulação do algoritmo e a definição das estruturas de dados estão
intimamente ligadas.”
Unisa | Educação a Distância | www.unisa.br
7
1 ALGORITMOS
Em nosso dia a dia, executamos mecanicamente uma série de ações, que são seguidas sequencial-mente
e que provocam o acontecimento de algo. Por exemplo, temos um trajeto frequente ao sairmos
diariamente de casa em direção ao nosso trabalho ou à nossa universidade, que, sempre que seguido,
nos leva ao nosso destino. Isso é um algoritmo. Em outras palavras, um algoritmo descreve eventos com
duração finita, que envolvem um conjunto de objetos cujas características podem ser alteradas, através
de ações que ocorrem sequencialmente.
1.1 O que é um Algoritmo?
Vamos, juntos, entender o que são algoritmos, utilizando inicialmente alguns conceitos já definidos
na literatura técnica da área:
Atenção
Além dessas importantes definições, acrescentemos que, num algoritmo, podem-se observar os
seguintes aspectos:
ƒƒação: evento que ocorre num período de tempo finito;
ƒƒestado: propriedades de um objeto numa dada situação;
ƒƒprocesso: sequência temporal de ações;
ƒƒpadrão de comportamento: toda vez que é seguido, um evento ocorre.
7. Elisamara de Oliveira
Algoritmo para fazer “batatas fritas para o jantar”
“Traga a cesta com batatas da despensa”;
“Traga a panela do armário”;
“Coloque óleo na panela”;
Se “a roupa é clara”
então “coloque o avental”;
Enquanto “nº de batatas é insuficiente para o número de pessoas” faça
“Pique as batatas”;
“Esquente o óleo da panela”;
“Frite as batatas na panela”;
“Escorra o excesso de óleo das batatas fritas”;
“Coloque as batatas fritas numa vasilha com papel absorvente”.
Unisa | Educação a Distância | www.unisa.br
8
Saiba mais
Exemplo de um algoritmo
“descasque as batatas”;
Apesar de muito simples, algumas observações importantes podem ser notadas nesse algoritmo:
ƒƒo tempo verbal está na forma imperativa (“faça”, “traga”, “frite” etc.);
ƒƒhá um sequenciamento das ações, que estão separadas por um ponto e vírgula;
ƒƒo avental não é usado toda vez: existe um motivo para colocá-lo, ou seja, há uma condição para
que o avental seja colocado;
ƒƒo número de batatas descascadas varia; a ação de “descascar uma batata” repete-se até que a
condição de parada (ser suficiente para alimentar as pessoas que irão jantar) seja alcançada;
ƒƒa ordem das ações é importante: primeiro descasca-se a batata, pica-se a batata, para depois fritá-la...
Exemplos de algoritmos conhecidos:
ƒƒQual é o algoritmo que você descreve para vir estudar?
ƒƒQual é o algoritmo para se fazer uma feijoada?
ƒƒQual é o algoritmo para se trocar uma lâmpada?
Apesar de receitas culinárias e trajetos rotineiramente percorridos encaixarem-se perfeitamente no
conceito inicial de algoritmo, no nosso curso, estamos interessados num tipo de algoritmo especial, que
seja capaz de ser executado por um computador. Para tanto, é necessário que identifiquemos problemas
do mundo real que possam ser traduzidos em ações primitivas finitas e dos quais se possa extrair um
padrão de comportamento.
8. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
9
Com base nos exemplos apresentados até aqui, estamos prontos para definir o que é um algoritmo.
Um algoritmo é a descrição de um padrão de comportamento, expresso em termos de um
repertório bem definido e finito de ações primitivas que podem ser executadas.
Analise a definição e veja como é coerente com o que apresentamos; não é mesmo? Além disso, é
importante observar que, num algoritmo, distinguem-se claramente dois aspectos:
ƒƒaspecto estático: que corresponde ao texto;
ƒƒaspecto dinâmico: que corresponde à sua execução (a partir de valores iniciais).
O curso de Algoritmos e Linguagem de Programação é, na realidade, um curso de Programação de
Computadores para alunos(as) que iniciam cursos superiores na área de Engenharia e Informática. Sei
que você está curioso(a) para conhecer um algoritmo, mas, para começar a construir seus algoritmos e
fazer seus primeiros programas de computador, é necessário que você domine uma série de conceitos
básicos, que são apresentados a seguir, a começar pelo próprio computador!
1.2 Conceitos Básicos da Programação de Computadores
Fonte: http://evotecinformatica.blogspot.com/p/como-
-cuidar-do-seu-computador.html.
Computador: é uma máquina capaz de seguir uma espécie de algoritmo chamado programa, que
está escrito em linguagem de máquina.
Linguagem de máquina: internamente, o computador executa uma série de instruções que ficam
armazenadas em sua memória principal em código binário, ou seja, em linguagem de máquina (zeros (0)
e uns (1), que são os dígitos binários ou bits).
Linguagem de alto nível: para escrever os programas de computador, os programadores utilizam
linguagens que estão mais próximas da linguagem humana, que são chamadas linguagens de alto nível
ou, simplesmente, linguagens de programação. Exemplos de linguagens de programação (alto nível)
são: C, C++, C#, Pascal, Delphi, Java, Basic, VisualBasic, Fortran, Cobol, entre muitas outras.
9. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
10
Linguagem de montagem ou Assembly: há programas de computador que precisam interferir
diretamente no hardware da máquina para permitir a execução de funções específicas, como as ofere-cidas
por sistemas operacionais, por exemplo. Nesse caso, os programadores utilizam as linguagens de
montagem ou linguagens assembly, que estão muito próximas da linguagem de máquina e mais distan-tes
das linguagens de programação, sendo, por isso, chamadas linguagem de baixo nível.
A Figura 1 mostra a relação entre as linguagens discutidas anteriormente.
Figura 1 – Relação entre linguagens de baixo e de alto nível.
Numa ponta da Figura 1, está a linguagem de máquina e, no outro extremo, estão as linguagens
humanas. Quanto mais próxima da linguagem de máquina, mais de “baixo nível” é a linguagem; em con-trapartida,
quanto mais próxima das linguagens humanas, mais “alto nível”. As linguagens de programa-ção
fazem uma espécie de ponte entre a linguagem binária, ou linguagem que o computador entende,
e a linguagem que nós humanos utilizamos.
Linguagem de programação: “Uma linguagem de programação é uma linguagem utilizada por
uma pessoa para expressar um processo através do qual o computador possa resolver um problema.”
(SEBESTA, 2000). Pessoas que possuem uma compreensão limitada da linguagem natural tendem a ser
mais limitadas para expressar seus pensamentos, especialmente em termos de capacidade de abstração.
Programadores que tiveram pouca educação formal em disciplinas de Computação tendem a continuar
a usar a mesma linguagem de programação, mesmo que esta esteja em desuso. A aprendizagem con-tínua
é fundamental. É necessário que os programadores conheçam os fundamentos das linguagens
de programação para que possam ler, entender e aprender com os manuais e livros técnicos das novas
linguagens e os novos paradigmas que venham a surgir.
Compilador: permite que os programadores utilizem linguagens de alto nível para escrever os
programas de computador, pois se encarrega de traduzi-los para linguagem de máquina. O compilador
é um programa que traduz uma determinada linguagem de programação para linguagem de máquina.
Dessa forma, existem diversos compiladores específicos para cada uma das linguagens de programação
e para cada sistema operacional, conforme ilustra a Figura 2.
10. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
11
Figura 2 – Os compiladores são específicos para cada linguagem e para cada sistema operacional.
Conforme ilustra a Figura 2, um compilador C para o sistema operacional Windows (compilador
X) é diferente de um compilador C para o sistema operacional Linux (compilador Y), que também é di-ferente
de um compilador C para o sistema operacional Mac OS (compilador Z), por exemplo, embora a
linguagem de programação (C) seja a mesma (linguagem de alto nível). O compilador de linguagem de
montagem ou linguagem assembly é chamado assembler.
Caro(a) aluno(a), dadas essas explicações básicas, como unir todas essas informações para come-çarmos
a programar? A Figura 3 vai nos ajudar, mostrando o ciclo completo da elaboração do algoritmo
à execução de um programa de computador. Cada um dos componentes desse ciclo é explicado a seguir.
Figura 3 – Do algoritmo à execução de um programa de computador.
11. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
12
ƒƒAlgoritmo: estrutura do programa; instruções que descrevem a lógica do programa;
ƒƒEditor de texto: permite que o código-fonte do programa seja editado em um arquivo-fonte.
Alguns compiladores têm editores com ambiente de programação integrados, como é o caso
do compilador Dev C++;
ƒƒCódigo-fonte: conjunto de comandos escritos na linguagem de programação escolhida (que,
neste curso, será a linguagem C). O código-fonte fica armazenado no arquivo-fonte em forma-to
ASCii, ou seja, em texto [o arquivo-fonte possui a extensão relativa à linguagem de progra-mação
usada, por exemplo, .pas (Pascal), .c (C), .cpp (C++), .cs (C#), .java (Java)];
ƒƒCompilador: lê o código-fonte do programa e cria outro arquivo, com o mesmo programa
escrito em linguagem de máquina;
ƒƒCódigo-objeto: arquivo resultante da compilação do código-fonte. Contém informações so-bre
alocação de memória, os símbolos do programa (como nomes de variáveis e de funções) e
também informações sobre debug (o arquivo-objeto possui a extensão .obj para a maioria das
linguagens de programação);
ƒƒArquivos de biblioteca: contêm funções já compiladas que podem ser utilizadas no programa;
ƒƒLinker: programa auxiliar do compilador que cria o programa executável a partir de arquivos-
-objeto e dos arquivos de biblioteca;
ƒƒCódigo executável: programa que pode ser executado no computador (o arquivo executável
possui a extensão .exe).
Resumindo todo esse processo, caro(a) aluno(a), vamos precisar passar por 5 etapas: obter um pro-blema
a ser resolvido; escrever um algoritmo em pseudolinguagem para solucionar esse problema; tra-duzir
o algoritmo para a linguagem de programação C; e, finalmente, editar esse programa e usar um
compilador C para testar seu funcionamento!
1.3 Etapas da Programação de Computadores
Como acabamos de dizer, para conseguirmos construir programas de computador, é necessário
cumprir 5 etapas básicas da programação. As 5 etapas da programação de computadores são:
1. identificação de um problema do mundo real;
2. confecção do algoritmo;
3. teste do algoritmo;
4. confecção do programa de computador;
5. execução do programa no computador.
Para realizarmos esse ciclo de etapas com sucesso, quer dizer, para conseguirmos fazer programas
de computador com qualidade e confiáveis, é muito importante a utilização de técnicas de programação,
como a programação estruturada. A programação estruturada é uma metodologia de projeto e desen-volvimento
que pretende:
12. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
13
ƒƒfacilitar a escrita;
ƒƒfacilitar o entendimento;
ƒƒpermitir a verificação;
ƒƒfacilitar a alteração e a manutenção dos programas de computador.
O principal objetivo da metodologia de programação estruturada é reduzir a complexidade dos
problemas. Essa metodologia, quando utilizada, induz o programador a produzir programas:
ƒƒconfiáveis;
ƒƒde fácil manutenção;
ƒƒflexíveis;
ƒƒdocumentados;
ƒƒlegíveis.
Sendo assim, caro(a) aluno(a), vamos aprender a programar da melhor maneira possível: utilizando
as regras da programação estruturada!
1.4 Expressão de Algoritmos
Os algoritmos podem ser expressos através de diagramas, de pseudolinguagens ou da própria lin-guagem
de programação. Vamos examinar cada uma dessas três opções e, no final deste capítulo, vamos
optar por uma delas, para que possamos começar a fazer nossos primeiros algoritmos!
Expressão de Algoritmos Através de Diagramas
A utilização de diagramas para a expressão de algoritmos foi bastante utilizada até a década de
1980. Diagramas de Chapin e fluxogramas foram os principais métodos utilizados então. Nos métodos
baseados em diagramas, uma grande variedade de formas geométricas, como quadrados, retângulos,
hexágonos, pentágonos etc., é utilizada para representar as instruções de leitura e impressão de dados,
assim como os comandos condicionais, de repetição etc. Além disso, uma série de regras para a dispo-sição
dessas formas e/ou setas para representar o sequenciamento das instruções fazem parte desses
métodos.
Apesar de terem sido utilizados largamente pelas primeiras gerações de programadores, esses mé-todos
apresentam uma série de inconveniências, tais como:
ƒƒo programador tem que memorizar todas as formas geométricas e conhecer as regras de in-ter-
relacionamento entre elas;
ƒƒo programador perde um tempo considerável para fazer e refazer desenhos, tendo que possuir
diversas réguas com os símbolos dos diagramas;
ƒƒpara algoritmos muito grandes, os desenhos começam a ocupar muitas páginas, tornando im-
13. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
14
praticável a visualização de toda a solução;
ƒƒa memorização de regras de expressão desvia a atenção do programador, que não tem apenas
de se concentrar na lógica do problema, como seria desejável, mas tem as preocupações adi-cionais
de elaborar desenhos e consultar regras e regras.
Além de todos os inconvenientes citados, que de longe esgotam os seus problemas, os métodos
baseados em diagramas se distanciam muito do alvo da programação, que é a expressão da lógica al-gorítmica
na própria linguagem de programação! Além disso, esses métodos não são nem um pouco
intuitivos. Veja a Figura 4 e tente descobrir o que o programa faz, sem muito esforço, se for possível:
Figura 4 – Algoritmo expresso através de um diagrama de Chapin.
A Figura 5 mostra um exemplo de um algoritmo expresso através de um fluxograma. Observe a
existência de diferentes formas geométricas para as diferentes instruções e o uso de setas para represen-tar
o fluxo dos dados. Você seria capaz de dizer o que esse algoritmo faz? Quais as variáveis que ele utiliza
e de que tipo básico elas são? (Dica: esse algoritmo faz a mesma coisa que o expresso pelo diagrama de
Chapin, da Figura 4).
14. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
15
Figura 5 – Algoritmo expresso através de um fluxograma.
Expressão de Algoritmos Através de Linguagem de Programação
Expressar um algoritmo através de uma linguagem de programação é o objetivo, a meta do pro-gramador,
com certeza, mas isso é feito quando o programador já adquiriu bastante experiência de pro-gramação,
quer dizer, quando o programador já consegue programar diretamente da linguagem de pro-gramação.
Os programadores iniciantes podem ter grandes dificuldades para aprender a programar se
forem diretamente às instruções da linguagem de programação.
Uma linguagem de programação permite, além da expressão do raciocínio algorítmico, a sua exe-cução
no computador (por causa do compilador, conforme já aprendemos). Embora as linguagens de
programação sejam chamadas linguagens de alto nível, devido à sua proximidade com a linguagem hu-mana,
suas instruções vêm em inglês. O inglês é uma das diversas linguagens humanas, claro, mas pode
oferecer certo desconforto aos estudantes, principalmente aos que falam português, como é o nosso
caso.
Existem diversas linguagens de programação. Cada uma pode ser mais adequada à resolução de
problemas específicos e recebe alguns rótulos por isso, como linguagens para aplicações científicas, lin-guagens
para desenvolvimento de software básico, linguagens para utilização intensiva de recursos
15. Elisamara de Oliveira
gráficos, para manipulação de bancos de dados etc. e linguagens para o ensino de programação!
Veja a Figura 6. É um código escrito em Pascal.
Unisa | Educação a Distância | www.unisa.br
16
Figura 6 – Algoritmo expresso na linguagem de programação Pascal.
A Figura 6 mostra um algoritmo expresso na linguagem de programação Pascal, ou seja, já é um
programa de computador. Observe a estrutura do programa: começa com PROGRAM, depois tem a se-ção
VAR, na qual as variáveis são declaradas e, depois, vêm as instruções contidas entre o BEGIN (início) e
o END (fim). Você seria capaz de dizer o que esse algoritmo faz? Quais as variáveis que ele utiliza e de que
tipo básico elas são? (Dica: esse programa faz a mesma coisa que o expresso pelo diagrama de Chapin e
pelo fluxograma, mostrados nas Figuras 4 e 5).
Agora, observe o exemplo de um programa escrito na linguagem de programação C.
Figura 7 – Algoritmo expresso na linguagem de programação C.
16. Algoritmos e Linguagem de Programação
A Figura 7 mostra um algoritmo expresso na linguagem de programação C, ou seja, também é um
programa de computador. Observe a estrutura do programa: começa com um comentário, depois tem
a inclusão de uma biblioteca de funções, depois a declaração das variáveis e, em seguida, vem a seção
main, na qual as instruções do programa estão contidas entre o { (início) e o } (fim). Você seria capaz de
dizer o que esse algoritmo faz? Quais as variáveis que ele utiliza e de que tipo básico elas são? (Dica: esse
programa faz a mesma coisa que o expresso pelo diagrama de Chapin, pelo fluxograma e pelo programa
Pascal, mostrados nas Figuras 4, 5 e 6).
O programa traz um comentário dizendo explicitamente o que ele faz. Portanto, garanto que você
conseguiu responder à primeira pergunta. Com relação às variáveis que o programa utiliza e seu tipo
básico, observe a declaração “int valor, menor;” no programa. Há duas variáveis ali declaradas: valor e
menor; o tipo básico é int; um pouquinho de imaginação e int = inteiro!
Que tal você comparar o código C com o código Pascal? Semelhanças? Qual dos dois lhe pareceu
Unisa | Educação a Distância | www.unisa.br
17
mais fácil de entender?
Bem, se sua resposta foi o código Pascal, digo-lhe que o Pascal tem o “rótulo” de linguagem mais
adequado ao ensino de programação. Se sua resposta foi o código C, saiba que é uma linguagem que foi
criada para ser utilizada por programadores experientes. Mas, se você teve dificuldade de entender am-bos
os códigos, não se preocupe! O curso está apenas começando e há muito que se aprender de lógica
de programação! Garanto que no final do curso esse programa vai parecer muito, muito fácil para você!
Expressão de Algoritmos Através de Pseudolinguagem
Uma pseudolinguagem é uma notação para expressão de algoritmos para ser utilizada nas 3 pri-meiras
etapas da programação definidas na seção 1.3, quais sejam, identificação de um problema do mun-do
real, confecção e teste do algoritmo. É apresentada na forma de português estruturado. Embora seja
uma pseudolinguagem, possui estrutura, sintaxe e semântica semelhantes às de uma linguagem de pro-gramação.
A principal diferença entre a pseudolinguagem e a linguagem de programação é que a primeira
não possui um compilador. Isso significa que é possível expressar o raciocínio algorítmico utilizando-se
uma pseudolinguagem, mas o programa não pode ser executado no computador.
São muitas as vantagens de se utilizar uma pseudolinguagem para escrever algoritmos:
ƒƒé uma linguagem independente de máquina; o programador pensa somente no problema a
ser resolvido, sem se preocupar com possíveis restrições do compilador ou do hardware (com-putador);
ƒƒo programador tem que conhecer a sintaxe, a semântica e a estrutura da pseudolinguagem,
mas tem total liberdade para criar novos comandos ou usar instruções em alto nível (ou em
forma de frases); por um lado, ele vai se acostumando com a rigidez da sintaxe das linguagens
de programação, mas, por outro, tem a liberdade de expressar seu raciocínio sem esbarrar em
limitações de contexto;
ƒƒuma vez estando pronto o algoritmo na pseudolinguagem, a sua implementação no compu-tador
(etapas 4 e 5 da programação: confecção e execução do programa) fica muito facilitada,
pois toda a lógica já foi desenvolvida e testada e somente uma tradução para a linguagem de
programação-alvo se faz necessária.
17. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
18
Veja o exemplo de um algoritmo escrito na pseudolinguagem PortuCê.
Figura 8 – Algoritmo expresso na pseudolinguagem PortuCê.
A Figura 8 mostra um algoritmo expresso na pseudolinguagem PortuCê. Observe a estrutura do
algoritmo: começa com um comentário dizendo o que o algoritmo faz, tem a declaração das variáveis
e depois vem a seção principal ( ), em que são apresentadas as instruções contidas entre o { (início) e }
(fim) do algoritmo. Você seria capaz de dizer o que esse algoritmo faz? Quais as variáveis que ele utiliza
e de que tipo básico elas são? (Dica: esse algoritmo faz a mesma coisa que o expresso pelo diagrama de
Chapin, pelo fluxograma, pela linguagem Pascal e pela linguagem C, mostrados nas Figuras 4, 5, 6 e 7).
Esse algoritmo em PortuCê corresponde ao programa em C mostrado na Figura 7. Observe a gran-de
semelhança entre eles. Essa semelhança é proposital, com certeza. O PortuCê é quase a tradução de
um programa C para o português. As vantagens de se utilizar o PortuCê são muitas. Pense sobre elas, pois
o PortuCê será nosso maior aliado no aprendizado de algoritmos!
Um exercício interessante para você fazer agora seria visitar os exemplos deste algoritmo escritos
no diagrama de Chapin e no fluxograma e compará-los com o PortuCê. Diga-me: qual deles é mais fácil
de entender? Qual dessas formas de expressão de algoritmos você escolheria?
1.5 Os Algoritmos serão Expressos em Pseudolinguagem
Em função de tudo o que foi dito e após conhecermos as 3 formas de expressão de algoritmos, usa-remos
pseudolinguagem para escrever nossos primeiros algoritmos! As justificativas dessa nossa esco-lha
são muitas e foram já fundamentadas. A pseudolinguagem PortuCê utiliza o português, numa forma
estruturada, e tem estrutura, sintaxe e semântica muito semelhantes às da linguagem de programação
C.
Apesar de o Pascal ter se consagrado como uma linguagem adequada para o ensino da progra-mação
aos estudantes que a iniciam, ou seja, como primeira linguagem de programação, a linguagem
C, antes restrita à comunidade científica, ganhou uma popularidade inquestionável na década de 1990
que se estende aos dias atuais, pois é a base de novas linguagens, como o Java, o C# e até o Android. Em
função disso, a linguagem C passou a ser alvo do interesse dos estudantes. A resistência, que já existiu,
18. Algoritmos e Linguagem de Programação
em utilizá-la como primeira linguagem de programação pelos professores se deveu, em parte, ao fato de
seus criadores, Dennis Ritchie e Brian Kernighan, terem afirmado que “C retém a filosofia básica de que
os programadores sabem o que estão fazendo” (KERNIGHAN; RITCHIE, 1989). Bem, se considerarmos que
programadores iniciantes não têm condições de saber com segurança o que estão fazendo, exatamente
pelo fato de serem inexperientes, a adoção da linguagem seria realmente questionável.
No entanto, as linguagens de programação evoluíram bastante e as mais utilizadas hoje, como o
Java e o C#, têm como base a linguagem C. Além disso, a adoção de um método adequado e coerente
para o ensino da programação de computadores pode atuar como um facilitador do processo de apren-dizagem,
permitindo que uma linguagem mais complexa, como o C, possa ser ensinado sem oferecer
Caro(a) aluno(a), o PortuCê, além de oferecer o conforto de utilizar nossa língua pátria, o que o
torna muito familiar ao programador, não requer a memorização das abomináveis formas geométricas
e setas e mais setas dos diagramas. Fique tranquilo, meu(minha) estudante, mais duas lições e você já
estará fazendo seus primeiros programas de computador!
Unisa | Educação a Distância | www.unisa.br
19
obstáculos à aprendizagem.
Assim, a adoção do PortuCê, nossa pseudolinguagem, e da metodologia de ensino proposta pela
professora viabiliza a adoção da linguagem de programação C como primeira linguagem. Isso vai ao en-contro
das expectativas dos estudantes e coloca o ensino da programação na direção da atual tendência
da programação de computadores, que vem utilizando, cada vez mais, o C como base dos novos e mo-dernos
paradigmas de programação.
1.6 Resumo do Capítulo
1.7 Atividade Proposta
1. Tente deduzir qual o padrão de comportamento utilizado para gerar as sequências:
1, 5, 9, 13, 17, 21, 25 ...
1, 1, 2, 3, 5, 8, 13, 21, 34 ...
19. Caro(a) aluno(a), suponha que você ganhou de presente uma viagem para os Estados Unidos. O
que você deveria fazer antes de ir para lá? Estudar inglês! Já que os americanos falam essa língua, claro.
Então, neste nosso curso, você está ganhando a chance única de aprender a programar. Este capítulo
o convida a aprender PortuCê, que é a língua que os algoritmos (que são as bases dos programas de
computador) falam! O PortuCê é, basicamente, uma tradução da linguagem C para Português. Assim,
aprendendo bem o PortuCê, você já estará se preparando para aprender a própria linguagem C, de forma
simples e fácil!
Unisa | Educação a Distância | www.unisa.br
21
PSEUDOLINGUAGEM DE
2 PROGRAMAÇÃO: PORTUCÊ
2.1 Identificadores
Todo programa de computador manipula dados, que são armazenados em variáveis. Uma variável
precisa ter um nome que a identifique de forma única no programa: é o identificador.
Atenção
• Um identificador em PortuCê é formado por caracteres alfanuméricos;
• O primeiro caractere tem que ser uma letra; os outros caracteres podem ser:
• letras: A-Z, a-z;
• dígitos: 0-9;
• sublinhado: _ .
• Não pode haver dois identificadores iguais.
• Letras minúsculas e letras maiúsculas são diferentes.
• Os identificadores não podem ser acentuados.
• Não pode haver espaço em branco num identificador.
• O caractere “ç” não pode ser usado num identificador.
• Um identificador não pode ter o mesmo nome das palavras reservadas do PortuCê (como: principal, se, senão,
inteiro, real etc.).
Exemplos de identificadores válidos:
NOME, raiz1, letra4, Total_dos_Salarios, Nome_de_Familia.
20. Elisamara de Oliveira
Exemplos de identificadores INVÁLIDOS:
Unisa | Educação a Distância | www.unisa.br
22
4pontos (começa com número)
CUSTO FINAL (tem espaço em branco)
PreçoTotal (caractere “ç” não pode ser usado)
Pessoa+Alta (caractere “+” não pode ser usado)
Preco-caro (caractere “-” não permitido)
Total_dos_salários (palavra acentuada)
inteiro (palavra reservada do PortuCê)
2.2 Tipos Básicos e Declaração de Variáveis
Os dados manipulados por um programa são armazenados em variáveis. As variáveis precisam ter
um nome (identificador), um tipo associado, e precisam ser declaradas antes que possam ser utilizadas.
Saiba mais
• Há três tipos básicos que podem ser associados às variáveis:
• inteiro;
• real;
• caractere.
• Para declarar uma variável, escreve-se o nome de seu tipo, salta-se um espaço em branco, em seguida escreve-se o
nome do seu identificador e “;” para finalizar a declaração.
• Se mais de uma variável for do mesmo tipo básico, elas podem ser declaradas juntas, apenas separadas por vírgulas.
• Toda variável precisa ser declarada antes de ser utilizada.
• Não pode haver duas variáveis com mesmo nome, mesmo que tenham tipos básicos diferentes, a menos que algum
caractere maiúsculo ou minúsculo as diferencie.
Exemplos de declaração de variáveis válida:
caractere NOME[20], letra;
inteiro soma;
real raiz1, Total_dos_Salarios;
caractere Nome_de_familia[30];
Exemplos de declaração de variáveis INVÁLIDA:
caractere NOME[20]; letra4; (o separador de identificadores deve ser a vírgula)
inteiro: SOMA; (não pode haver o sinal de dois-pontos após o nome do tipo)
raiz1, Total_dos_Salarios real; (o tipo básico deve vir antes dos identificadores)
caractere Nome_de_Familia[30]; (o nome do tipo básico está errado)
real SOMA; (a variável SOMA já foi declarada: um identificador não pode ser duplicado)
21. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
23
2.3 Comando de Atribuição
O conteúdo das variáveis do programa pode ser determinado através de dois tipos de comandos:
comando de atribuição e comando de leitura. O comando de atribuição permite que um determinado
valor seja armazenado numa variável.
Atenção
• O símbolo do comando de atribuição é = .
• Não se deve atribuir a uma variável um valor que NÃO seja compatível com o tipo básico dessa variável, ou seja,
números inteiros devem ser atribuídos a variáveis do tipo inteiro; números reais devem ser atribuídos a variáveis do
tipo real; frases e letras devem ser atribuídas a variáveis do tipo caractere.
• Caso não haja compatibilidade entre o dado e o tipo da variável, podem acontecer efeitos indesejados. Então,
muito cuidado, pois nesse tipo de atribuição ocorre a CONVERSÃO AUTOMÁTICA DE TIPOS e o que chega
na variável de destino pode ser um desastre!
• Toda variável deve ter um valor a ela atribuído antes de ser usada no programa;
• Em variáveis reais, SÓ EXISTE PONTO DECIMAL; não se pode usar vírgula decimal.
Exemplos de atribuições válidas:
letra = ‘L’;
soma = 0;
Total_dos_Salarios = 1275.50;
NOME = “Luiza”;
Exemplos de atribuições INVÁLIDAS:
NOME = Maria;
(a cadeia de caracteres tem que estar entre aspas)
NOME = ‘Maria’;
(o símbolo que delimita a cadeia de caracteres não pode ser apóstrofo, devem-se usar aspas)
Total_dos_Salarios = ‘1275.50’;
(o valor a ser atribuído a uma variável numérica não pode estar entre apóstrofos nem entre aspas)
Total_dos_Salarios = 1275,50;
(não existe vírgula decimal, o certo é usar ponto decimal)
soma = 10.0;
(numa variável do tipo inteiro,como é o caso da variável soma, não pode haver parte decimal;
esse caso está sujeito à conversão automática)
soma := 0;
(o símbolo do comando de atribuição é = e não :=)
22. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
24
2.4 Operadores Aritméticos
Os operadores aritméticos permitem que expressões da Matemática sejam atribuídas às variáveis.
Os operadores aritméticos implementam as operações básicas (adição, subtração, divisão e multiplica-ção)
e algumas operações mais avançadas da Matemática (como logaritmo, raiz quadrada, seno, cosseno
etc.). A variável que vai receber o resultado de uma operação aritmética tem que ser de um tipo numéri-co
compatível, capaz de armazenar o valor resultante, senão poderá ocorrer uma conversão automática
com resultados muitas vezes indesejados ou mesmo imprevisíveis.
Saiba mais
• Os operadores aritméticos básicos são:
• + (adição);
• - (subtração);
• * (multiplicação);
• / (divisão real);
• ++ (adiciona 1);
• -- (subtrai 1).
• Alguns operadores aritméticos mais avançados são:
• % (resto da divisão inteira);
• / (quociente da divisão inteira);
• sqrt( ) (raiz quadrada);
• abs( ) (valor absoluto).
Exemplos de expressões aritméticas válidas:
resto = 10 % 3;
quociente = 10 / 3;
salario = ((totaldehoras*32.50)+102.00) - descontoinss;
valoremdolares = salario / 1.85;
impostoderenda = salario * (0.20);
nome = nome + “da silva”;
contador = contador +1;
++contador;
--contador;
raiz = sqrt(numero);
23. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
25
Exemplos de expressões aritméticas INVÁLIDAS:
resto = 10.0 % 3;
(o operador % só pode envolver números inteiros)
valoremdolares = salario / 1,85;
(não existe vírgula decimal, o separador é sempre o ponto decimal)
salario = totaldehoras *+ 32.50;
(os operadores * e + são diádicos, envolvem sempre dois operadores, portanto não podem ser
utilizados juntos)
nome = nome * 3;
(em variáveis do tipo caractere só pode ser feita adição ou subtração de caracteres)
contador = *1;
(o operador * é diádico, tem que envolver dois operandos)
2.5 Operadores Lógicos
Os operadores lógicos permitem que os três principais operadores da Álgebra de Boole possam ser
utilizados num programa: E, OU e NÃO. O estado dos operandos e o resultado de uma operação lógica
são sempre FALSOS (avaliados como zero) ou VERDADEIROS (avaliados como diferentes de zero).
Saiba mais
• Os operadores lógicos são:
• e (conjunção);
• ou (disjunção);
• ! (negação).
• O operador binário “e” envolve sempre dois operandos e o resultado é VERDADEIRO somente quando ambos os
operandos forem VERDADEIROS, ou seja, basta que um operando seja FALSO para que o resultado seja FALSO.
• O operador binário “ou” envolve sempre dois operandos e o resultado é FALSO somente quando ambos os operan-dos
forem FALSOS, ou seja, basta que um operando seja VERDADEIRO para que o resultado seja VERDADEIRO.
• O operador unário “!” muda o estado do operando de FALSO para VERDADEIRO ou de VERDADEIRO para FALSO.
Caro(a) aluno(a), aqui cabe uma explicação um pouco mais detalhada para melhorar o entendi-mento
dos operadores lógicos E, OU e ! (não):
ƒƒuma variável lógica é aquela que pode assumir apenas os valores VERDADEIRO ou FALSO;
ƒƒna prática, as variáveis lógicas são utilizadas para descrever o funcionamento de um sistema,
como um circuito formado por uma bateria e uma lâmpada:
24. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
26
ƒƒa representação dos níveis lógicos (1=verdadeiro e 0=falso) pode ser melhor entendida através
de chaves que representam um circuito. Se a chave está fechada (valor 1 ou valor VERDADEI-RO),
a corrente pode passar, o que pode permitir que a lâmpada se acenda. Se a chave está
aberta (valor 0 ou valor FALSO), a corrente não pode passar, o que pode impedir que a lâmpada
se acenda;
ƒƒuma função “E” resulta em 1=VERDADEIRO se, e somente se, todas as variáveis lógicas de en-trada
tiverem valor 1=VERDADEIRO. Em outras palavras, a lâmpada do circuito só acende se
ambas as chaves estiverem fechadas, o que caracteriza um circuito com chaves em sequência,
como o mostrado a seguir (na função “E”, somente se ambas as entradas forem verdadeiras a
expressão é avaliada como verdadeira);
25. Algoritmos e Linguagem de Programação
ƒƒuma função “OU” resulta em 1=VERDADEIRO se, pelo menos, uma das variáveis lógicas de en-trada
tiver valor 1=VERDADEIRO. Em outras palavras, a lâmpada acende se uma das chaves
estiver fechada ou quando as duas estiverem fechadas (forem verdadeiras), o que caracteriza
um circuito com chaves em paralelo, como o mostrado a seguir (na função “OU”, basta que uma
entrada seja verdadeira para a expressão ser avaliada como verdadeira);
ƒƒuma função “!” (não) é uma operação de inversão. Ela converte o estado ou valor de uma variá-vel
lógica em seu inverso lógico: de VERDADEIRO para FALSO e de FALSO para VERDADEIRO.
No caso do circuito, funciona assim: se a chave está aberta, ela se fecha e acende a luz, e, se está
fechada, ela se abre e apaga a luz.
Unisa | Educação a Distância | www.unisa.br
27
Exemplos de expressões lógicas válidas:
se (altura > 1.80 e idade < 21 e escolaridade >= 2)
se (idade >= 13 e idade <=20)
se ((media >= 7.0 e faltas <= 18) ou foiDispensado == 1)
se !( numero % 2 == 0)
26. Elisamara de Oliveira
Exemplos de expressões lógicas INVÁLIDAS:
Unisa | Educação a Distância | www.unisa.br
28
se (altura > 1.80 e ou idade < 21)
(os operadores “e” e “ou” são binários, envolvem sempre 2 operandos, portanto não podem ser
utilizados juntos)
se (idade >=13 e <= 20)
(a variável idade deveria ser repetida para obter o resultado lógico da comparação)
2.6 Operadores Relacionais
Os operadores relacionais permitem a comparação entre conteúdos de variáveis ou de valores e
resultam sempre num resultado FALSO (avaliado como zero) ou VERDADEIRO (avaliado como diferente
de zero).
Saiba mais
• Os operadores relacionais são:
• > (maior que);
• >= (maior ou igual a);
• < (menor que);
• <= (menor ou igual a);
• == (igual a);
• != (diferente de).
Importante: o sinal “=” corresponde ao comando de atribuição e o sinal “==” significa comparação!
Exemplos de expressões relacionais válidas:
se (resposta == ‘S’)
se (resposta == ‘S’ ou resposta == ‘s’)
se (resposta != ‘S’ e resposta != ‘s’)
se (sexo == ‘F’ e altura <= 1.50)
Exemplos de expressões relacionais INVÁLIDAS:
se (resposta ! = ‘S’)
(o símbolo do operador “diferente” está errado: não pode haver espaço em branco entre o “!” e
o “=“)
se (altura < = 1.50)
(o símbolo do operador “menor que” está errado: não pode haver espaço em branco entre o “<“
e o “=“)
27. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
29
se (resposta = ‘S’)
(o problema aqui é o uso do símbolo “=”, que é do comando de atribuição, e não “==” que é a
igualdade; na verdade, o comando não está errado, mas está sendo feita uma atribuição e não
uma comparação. Portanto, muito cuidado!)
2.7 Comando Condicional
O comando condicional permite que se tomem 2 caminhos diferentes e mutuamente exclusivos a
partir da avaliação de uma condição. Se a condição é avaliada como verdadeira, um caminho é seguido;
se é avaliada como falsa, outro caminho é escolhido, nunca ambos!
A associação do comando condicional com fatos rotineiros é imediata: “se estiver chovendo eu vou
de carro, senão eu vou de bicicleta”; nesse exemplo, a pessoa avalia a condição do tempo antes de decidir
se sairá de carro ou de bicicleta e não há possibilidade de ela sair com ambos os meios de transporte!
Atenção
• A sintaxe do comando condicional é:
se (<condição>)
{
<bloco de comandos 1>
}
senão
{
<bloco de comandos 2>
}
• A semântica (como funciona) do comando condicional é:
• a <condição> é avaliada como VERDADEIRA (valor diferente de zero) ou FALSA (valor igual a zero);
• se a <condição> for VERDADEIRA, o <bloco de comandos 1> é executado e o comando condicional é finalizado;
• se a <condição> for FALSA, o <bloco de comandos 2> é executado e o comando condicional é finalizado.
• “senão” é cláusula do comando “se”, ou seja, não é comando, apenas faz parte do comando “se”.
• A cláusula “senão” pode não existir num comando “se”. Nesse caso, (quando não existe a cláusula “senão”), quando
a <condição> é avaliada como FALSA, nenhum comando é executado e o comando “se” é finalizado.
• Os delimitadores de início { e de fim } são obrigatórios quando existe mais de um comando no <bloco de
comandos 1> ou mais de um comando no <bloco de comandos 2>. Quando existir apenas um comando, os
delimitadores ficam opcionais.
28. Elisamara de Oliveira
Exemplos de comandos condicionais VÁLIDOS:
Unisa | Educação a Distância | www.unisa.br
30
se (media >= 7.0)
aprovado = 1;
se (media >= 7.0)
{ aprovado = 1;
}
se (media >= 7.0)
{ aprovado = 1;
++contadoraprovados;
}
se (media >= 7.0)
aprovado = 1;
senão
aprovado = 0;
se (media >= 7.0)
{ aprovado = 1;
++contadoraprovados;
}
senão
aprovado = 0;
se (media >= 7.0 e faltas <= 9)
{ aprovado = 1;
++contadoraprovados;
}
senão
{ aprovado = 0;
++contadorreprovados;
}
Exemplos de comandos condicionais INVÁLIDOS:
se media >= 7.0
aprovado = 1; (faltou colocar parênteses na condição)
se (media >= 7.0)
{ aprovado = 1;
++contadoraprovados;
(faltou colocar o delimitador de fim { no final do comando )
29. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
31
se (media >= 7.0)
aprovado = 1
senão
aprovado = 0;
(faltou ; depois do comando aprovado = 1)
se (media >= 7.0)
{ aprovado = 1;
++contadoraprovados;
}
senão
aprovado = 0
(novamente faltou ; após o comando aprovado = 0)
se (media >= 7.0 e faltas <= 9)
{ aprovado = 1;
++contadoraprovados;
}
senão
aprovado = 0;
++contadorreprovados;
}
(faltou o delimitador { após o “senão”)
se (media >= 7.0)
aprovado = 1;
++contadoraprovados;
senão
aprovado = 0
(faltaram os delimitadores { } após a condição do comando se caso verdadeiro (antes do senão))
2.8 Comando de Repetição
O comando de repetição permite que um comando ou um bloco de comandos seja executado
diversas vezes. O número de vezes é determinado por uma condição que é constantemente avaliada.
Enquanto a condição for avaliada como verdadeira (ou diferente de zero), o comando ou bloco de co-mandos
é executado repetidamente; quando a condição fica falsa, o comando de repetição para.
A associação do comando de repetição com fatos rotineiros é possível: “enquanto o número da casa
for menor que o procurado, continue subindo a rua e verificando se é a casa procurada”; nesse exemplo, a
pessoa avalia a condição, que é a verificação do número desejado entre diversas casas de uma rua, por
exemplo. Essa avaliação continua até que a casa procurada seja encontrada ou que se encontre uma casa
cujo número seja superior ao procurado, supondo que a numeração esteja em ordem crescente.
30. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
32
Atenção
• A sintaxe do comando de repetição é:
enquanto (condição)
{
<bloco de comandos>
}
• A semântica (como funciona) do comando de repetição é:
• a condição é avaliada como VERDADEIRA (diferente de zero) ou FALSA (igual a zero);
• se a condição for VERDADEIRA, o <bloco de comandos> é executado e, ao chegar ao delimitador de fim } ou final
do comando, automaticamente se retorna à avaliação da condição;
• se a condição for FALSA, o comando de repetição é finalizado.
• Entre os comandos do <bloco de comandos> é ESSENCIAL que exista um comando que altere a <condição> que
é constantemente avaliada, pois, caso contrário, o comando “enquanto” NUNCA TERMINARÁ!
• Os delimitadores { e } são obrigatórios quando existe mais de um comando no <bloco de comandos>. Quando
existir apenas um comando, os delimitadores ficam opcionais e o “;” funcionará como delimitador de fim,
indicando o final do comando “enquanto”.
Exemplos de comandos de repetição válidos:
enquanto (contador < 3)
++contador;
numero = 1;
enquanto (numero <= 50)
{ se (numero % 2 == 0)
++contapar;
senão
++contaimpar;
++numero;
}
Exemplos de comandos de repetição INVÁLIDOS:
enquanto contador <= 10
++contador;
(faltaram parênteses na condição)
numero = 1;
enquanto (numero <= 50)
{ se (numero % 2 == 0)
++contapar;
senão
++contaimpar;
++numero;
(faltou colocar o delimitador fim } após o último comando)
31. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
33
numero = 1;
enquanto (numero <= 50)
se (numero % 2 == 0)
++contapar;
senão
++contaimpar;
++numero;
(como não existem os delimitadores de
início e fim { }, somente o comando “se” faz parte do comando “enquanto” e, como o
comando “se” não altera a variável numero, o comando “enquanto” nunca vai pa-rar!)
numero = 1;
enquanto (numero <= 50);
{ se (numero % 2 == 0)
++contapar;
senão
++contaimpar;
++numero;
}
(como foi colocado ; após a condição, o comando “enquanto” foi finalizado; a va-riável
numero não será alterada e o comando “enquanto” nunca vai parar!)
2.9 Comandos de Entrada e Saída
O comando de entrada permite que o usuário possa fornecer valores ao programa, através do te-clado,
que serão armazenados nas variáveis. O comando de saída permite que informações e valores de
variáveis possam ser enviados ao usuário pela tela do monitor.
É dessa forma que se consegue estabelecer um diálogo com o usuário. Se o programa deseja saber
o nome do usuário, por exemplo, usa-se o comando de saída para fazer a pergunta “qual é o seu nome?” e
usa-se o comando de entrada para obter a resposta e armazená-la numa variável.
32. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
34
Atenção
• A sintaxe do comando de entrada é:
leia(“%letra”, [&] variável);
em que:
“%letra” representa os especificadores de formato e depende do tipo associado à variável:
• “%d” ou “%i” para variáveis do tipo inteiro (integer);
• “%f” para variáveis do tipo real (float);
• “%c” para variáveis do tipo caractere (único) (character);
• “%s” para variáveis do tipo caractere (cadeia ou string);
• O símbolo & deve ser utilizado apenas para os tipos numéricos, ou seja, para variáveis declaradas como inteiras ou
reais.
• A semântica (como funciona) do comando de entrada é:
• a variável tem que ter sido previamente declarada;
• o usuário vai utilizar o teclado para fornecer o dado e, depois que ele teclar <ENTER>, tudo o que ele tiver digi-tado
será armazenado na variável automaticamente.
• Recomenda-se utilizar o comando “leia” para ler uma só <variável> de cada vez.
A tabela a seguir mostra um exemplo de declaração de variáveis de tipos básicos e a forma correta
de leitura.
Declaração Leitura Exemplos de conteúdos
inteiro numero; leia(“%i”, &numero);
numero = -5;
numero = 2002;
real valor; leia(“%f”, &valor);
valor = -5.867;
valor = 2002.50;
caractere ch; leia(“%c”, ch);
ch = ‘5’;
ch = ‘s’;
ch = ‘#’;
caractere nome[20]; leia(“%s”, nome);
nome = “Maria”;
nome = “fim”;
Observe, na tabela, a diferença entre a declaração, a leitura e a atribuição de valores a um caractere
único (%c) e a uma cadeia de caracteres (%s). Um único caractere vem entre apóstrofos (‘ ’) e uma cadeia
de caracteres entre aspas (“ “)!
33. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
35
Atenção
• A sintaxe do comando de saída é:
imprima(“ frase e %letra ” [, lista de variáveis] );
• Entre aspas, podem ser escritas frases formadas por palavras intercaladas pelos especificadores de formato %s, %c,
%i, %d ou %f, descritos no comando “leia”. Para cada especificador utilizado, a variável do tipo correspondente deve
constar da lista de variáveis.
• A lista de variáveis é opcional; deve existir somente quando um especificador de formato é colocado na frase entre
aspas e, nesse caso, deve haver uma vírgula separando a frase da lista de variáveis e vírgulas separando as variáveis
da lista.
• A semântica (como funciona) do comando de saída é:
• pode ser impressa qualquer frase e qualquer variável dentro de um comando “imprima”, desde que a frase esteja
entre aspas e as variáveis estejam devidamente listadas após a vírgula que separa a frase da lista de variáveis;
• a frase entre aspas é copiada integralmente para a tela e os especificadores de formato são substituídos pelas
variáveis da lista de variáveis;
• quando existe uma variável, o seu conteúdo é copiado para a tela;
• a ordem em que as palavras da frase e as variáveis aparecem no comando “imprima” é mantida quando é im-pressa
na tela.
Exemplos de comandos de entrada e saída válidos:
imprima (“Qual é o seu nome? “);
leia(“%s”,nome);
imprima (“Qual é a sua idade? “);
leia (“%i”,&idade);
imprima (“Qual é a sua altura? “);
leia (“%f”,&altura);
imprima (“Qual é o seu sexo? (F/M) “);
leia (“%c”,sexo);
imprima (“O seu nome é: %s e você tem %i anos “,nome, idade);
imprima (“Você foi aprovado no curso com média= %f”, Media);
Exemplos de comandos de entrada e saída INVÁLIDOS:
imprima (“Qual é o seu nome? );
(faltaram aspas após a interrogação para delimitar a frase a ser impressa)
34. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
36
imprima (“Qual é a sua idade? “);
leia (“%i”,idade);
(faltou o & antes do identificador idade, pois o tipo é numérico: %i)
imprima (“A sua idade é %i “ idade);
(faltou uma vírgula entre a frase entre aspas e a variável idade)
imprima (“Você foi aprovado no curso com média= “, media);
(faltou o especificador de formato da variável Media (%f) após o = na frase entre aspas)
imprima (“Qual é o seu nome? “);
leia (“%s”,&nome);
(não pode haver & na leituras de variáveis do tipo caractere (%c e %s) )
Saiba mais
Explicação adicional – Passo a passo do comando de impressão:
imprima (frase variável1 variável2 variável3);
(entre a frase e a variável e entre as variáveis deve haver uma vírgula separando-as).
imprima (frase , variável1, variável2, variável3);
(a frase deve vir entre aspas).
imprima (“frase ” , variável1, variável2, variável3);
(dentro da frase, deve vir um formato para cada variável, compatível com o seu tipo bási-co).
imprima (“frase %s %i %f ”,variável1,variável2,variável3);
Exemplo:
imprima (“Vc se chama %s, tem %i anos e %f m de altura ”, nome, idade, altura);
35. Algoritmos e Linguagem de Programação
2.10 Separador de Comandos
• O separador de comandos é: ;
Exemplos de erro na separação de comandos:
se (resposta != ‘s’);
{ <comandos>
}
Unisa | Educação a Distância | www.unisa.br
37
Todos os comandos do PortuCê são separados por ponto e vírgula.
Atenção
2.11 Comentários
(o ; depois da condição finaliza o comando “se”)
enquanto (contador < 5) ;
{ <comandos>
}
(o ; depois da condição do comando “enquanto” coloca o programa em loop infinito!)
Os comentários não pertencem às instruções dos algoritmos, mas são úteis para que o programa-dor
explique o que está sendo feito.
Saiba mais
• Os comentários podem vir delimitados entre
/* */
Ou podem ser comentários de linha
//
Exemplos de comentários:
/* Este trecho calcula a media de notas */
desc = preco*0.15; // calcula desconto de 15%
36. Elisamara de Oliveira
O Bloco de Programa em PortuCê tem a forma:
/* comentários */
<declaração de variáveis>;
principal()
{
<bloco de comandos>;
}
• É desejável que todo algoritmo escrito em PortuCê comecer com um comentário dizendo o que o programa faz,
embora comentários sejam opcionais.
• Em seguida, devem ser declaradas todas as variáveis que serão utilizadas no <bloco de comandos>.
• Após a declaração das variáveis, deve-se escrever a palavra principal( ), que delimita a seção em que os comandos
podem ser utilizados.
• O <bloco de comandos> pode conter todos os comandos válidos em PortuCê, separados por ponto e vírgula, e estes
devem estar contidos entre os delimitadores { e }. Nenhum comando pode ser usado fora dessa seção.
• É importante notar que letras maiúsculas e minúsculas alteram os identificadores e as palavras reservadas do PortuCê.
Unisa | Educação a Distância | www.unisa.br
38
2.12 Bloco de Programa
Bloco de programa é o nome que se dá à estrutura de um programa escrito numa determinada
linguagem. O bloco de programa em PortuCê pode ser visto a seguir.
Saiba mais
Exemplos de programas escritos em PortuCê válidos:
/* sexo.c: le o nome e o sexo de uma pessoa e imprime uma frase
dizendo se é masculino, feminino ou invalido */
caractere nome[20], sexo;
principal ( )
{ imprima (“Qual eh o seu nome? “);
leia(“%s”,nome);
imprima (“Qual eh o seu sexo? (f/m) “);
leia (“%c”,sexo);
se (sexo == ‘f’ ou sexo == ‘F’)
imprima (“%s voce eh do sexo feminino. “,nome);
senão se (sexo == ‘m’ ou sexo == ‘M’)
imprima (“%s voce eh do sexo masculino. “,nome);
senão imprima (“Voce digitou um sexo invalido “);
imprima(“Fim do programa.”);
}
37. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
39
/* nota.c: le a nota de um aluno e verifica se ele foi aprovado ou repro-vado
*/
real nota;
principal()
{ imprima (“Digite sua nota final: “);
leia(“%f”,¬a);
se (nota >= 6.0)
imprima (“Voce foi aprovado! “);
senão
imprima (“Voce foi reprovado. “);
imprima(“Fim do programa.”);
}
/* idade.c: le o ano atual e o ano de nascimento de uma pessoa
e imprime uma frase dizendo qual eh a idade da pessoa */
inteiro anoatual, anonasc, idade;
principal()
{ imprima (“Qual eh o ano atual? “);
leia(“%i”,&anoatual);
imprima (“Qual eh o seu ano de nascimento? “);
leia (“%i”,&anonasc);
idade = anoatual – anonasc;
imprima (“Voce fez ou fara %i anos “, idade);
imprima(“Fim do programa.”);
}
/* parimpar.c: le um numero e verifica se ele eh par ou impar */
inteiro n;
principal()
{ imprima (“Digite um numero inteiro: “);
leia(“%i”,&n);
se (n % 2 == 0)
imprima (“O numero %i eh par “, n);
senão
imprima (“O numero %i eh impar “, n);
imprima(“ Fim do programa.”);
}
38. Elisamara de Oliveira
Exemplos de programas escritos em PortuCê INVÁLIDOS:
Unisa | Educação a Distância | www.unisa.br
40
caractere sexo, caractere[20];
principal ( )
{ imprima (“Qual eh o seu nome? “);
leia(“%s”,caractere);
imprima (“Qual eh o seu sexo? (F/M) “);
leia (“%c”,sexo);
se (sexo == ‘F’)
imprima (“%s voce eh do sexo feminino. “,caractere);
senão
imprima (“%s você eh do sexo masculino. “,caractere);
}
(a variável caractere tem o mesmo nome da palavra reservada caractere)
real nota;
{ imprima (“Digite sua nota final: “);
leia(“%f”,¬a);
se (nota >= 6.0)
imprima (“Voce foi aprovado! “);
senão
imprima (“Voce foi reprovado... “);
imprima(“Fim do programa.”);
}
(faltou a palavra principal( ) para dar início à seção de comandos)
real nota;
nota = 7.5;
principal()
{ imprima (“Digite sua nota final: “);
leia(“%f”,¬a);
se (nota >= 6.0)
imprima (“Voce foi aprovado! “);
senão
imprima (“Voce foi reprovado... “);
imprima(“ Fim do programa.”);
}
(há um comando de atribuição nota=7.5; na seção de declaração de variáveis: não pode!)
39. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
41
inteiro anoatual, anonasc, idade;
principal()
imprima (“Qual eh o ano atual? “);
leia(“%i”,&anoatual);
imprima (“Qual eh o seu ano de nascimento? “);
leia (“%i”,&anonasc);
idade = anoatual – anonasc;
imprima (“Voce fez ou fara %i anos “, idade);
imprima(“Fim do programa.”);
}
(faltou o delimitador { para iniciar a seção de comandos do programa)
inteiro N;
principal()
{ imprima (“Digite um numero inteiro: “);
leia(“%i”,&n);
se (n % 2 == 0)
imprima (“O numero %i eh par “, n);
senão
imprima (“O numero %i eh impar “, n);
imprima(“ Fim do programa.”);
}
(não foi declarada a variável n ou foi declarada errada (N maiúsculo é diferente de n minúsculo))
2.13 Resumo do Capítulo
Caro(a) aluno(a), este capítulo foi um convite a aprender PortuCê, que é a língua que os algorit-mos
(que são as bases dos programas de computador) falam! O PortuCê é, basicamente, uma tradução
da linguagem C para Português. Assim, aprendendo bem o PortuCê, você já estará se preparando para
aprender a própria linguagem C, de forma simples e fácil!
40. CONSTRUÇÃO DE ALGORITMOS
EM PORTUCÊ: PRATICANDO OS
COMANDOS E FAZENDO CÁLCULOS
3
3.1 Declaração de Variáveis – Comandos “leia” e “imprima”
Unisa | Educação a Distância | www.unisa.br
43
1. Escreva um comando que leia um número inteiro.
2. Escreva comandos para pedir e ler um número inteiro.
3. Escreva comandos para pedir, ler e imprimir um número inteiro.
4. Repita o exercício 3 para um número real.
Saiba mais
Ao invés de usar %f para apresentar a altura, usamos %.2f
O que isso significa? Que nós queremos apresentar a altura com apenas 2 dígitos na parte decimal! Afinal, a forma tra-dicional
de se apresentar uma altura é com 2 dígitos apenas, como 1.75, 1.62, 1.88 etc., não é mesmo?
5. Declare as variáveis utilizadas nos exercícios de 1 a 4.
41. Elisamara de Oliveira
3.2 Comando Condicional “se”
Unisa | Educação a Distância | www.unisa.br
44
6. Escreva comandos para pedir, ler e imprimir o nome e a idade de uma pessoa.
7. Escreva um comando para verificar se a idade lida no exercício 6 corresponde a um adulto
(maior que 17 anos). Se for verdadeiro, imprimir uma frase dizendo que é um adulto.
8. Escreva um comando para verificar se a idade lida no exercício 6 corresponde a uma criança
(menor que 13 anos). Se for, imprima uma frase dizendo que é uma criança.
9. Escreva um comando para verificar se a idade lida no exercício 6 corresponde a um adolescen-te
(entre 13 e 17 anos). Se for, imprima uma frase dizendo que é um adolescente.
10. Escreva um único comando capaz de classificar uma pessoa pela faixa etária e ainda verificar
se a idade é válida.
42. Algoritmos e Linguagem de Programação
3.3 Bloco de Programa
Unisa | Educação a Distância | www.unisa.br
45
11. Transforme o exercício 6 num algoritmo, ou seja, construa o Bloco de Programa em PortuCê.
12. Escreva um algoritmo que leia o nome e a idade de uma pessoa e imprima uma frase dizendo
se a pessoa é uma criança, um adolescente, um adulto ou se a idade é inválida.
43. Elisamara de Oliveira
3.4 Operações Básicas com Números
Unisa | Educação a Distância | www.unisa.br
46
13. Escreva um comando para somar dois números: n1 e n2.
Observe que soma é a variável na qual o resultado da adição de n1 com n2 será armazenado. São
usados apenas o comando de atribuição “=“ e o operador “+”.
14. Escreva comandos para subtrair e multiplicar dois números: n1 e n2.
O raciocínio para subtrair e multiplicar dois números é o mesmo usado na adição.
15. Escreva um comando para dividir dois números: n1 por n2.
Antes de dividir um número n1 (numerador) por um número n2 (denominador) é necessário que
verifiquemos se o denominador é diferente de zero, pois não existe divisão por zero! O comando
“divisao = n1 / n2;” é válido do ponto de vista sintático, mas em programação temos que pensar
nos erros que porventura possam ocorrer quando da execução dos comandos.
Para evitarmos a divisão eventual por zero, usamos o comando “se”. Somente se n2 for diferente de
zero é que a divisão será calculada; caso contrário, uma mensagem é impressa para comunicar ao
usuário o motivo pelo qual o cálculo não foi efetuado. O resultado da divisão é um número real.
16. Escreva um comando para calcular o quadrado de um número inteiro n1 e também n1 elevado a 3.
Com certeza, é muito mais fácil do que você pensava, não é? São pequenos truques da programa-ção.
Mas se quisermos calcular n1 elevado a 1000 ou n1 elevado a um número qualquer, teremos
que escrever um pequeno trecho de algoritmo. Depois eu mostro como fazer.
44. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
47
17. Escreva um comando para calcular a raiz quadrada de um número n1.
Novamente, para evitarmos um erro tentando calcular a raiz de um número negativo, usamos o
comando “se”. Observe que sqrt( ) é um operador aritmético cuja sintaxe é diferente dos outros vis-tos
nos exercícios anteriores. Esse tipo de operador, na verdade, é uma função que recebe n1 como
parâmetro e devolve a sua raiz quadrada calculada. Existem muitas outras funções e elas serão
apresentadas na medida em que se fizer necessária a sua utilização.
18. Escreva comandos para fornecer o quociente e o resto da divisão inteira de n1 por n2.
No caso da divisão inteira de n1 (numerador) por um número n2 (denominador), também é neces-sário
que o denominador seja diferente de zero.
Nesse caso, é importante você notar que ambos os números (n1 e n2) têm que ser inteiros para
que os operadores “/” (quociente da divisão) e “%” (resto da divisão inteira) possam ser utilizados!
Como você pode notar, não existe um operador específico para o quociente da divisão inteira; usa-
-se o “/” (que é da divisão real), mas, como n1 e n2 são inteiros, haverá uma conversão automática
de tipos, com o truncamento da parte fracionária do resultado, o que nos fornece o quociente da
divisão inteira. Isso é um trunfo do PortuCê: nunca se esqueça disso!
Se n1 for 7 e n2 for 3, por exemplo, quais seriam os valores de quociente e resto? (7 dividido por 3
dá 2 (quociente) e sobra 1 (resto), não é?)
Saiba mais
Qual a diferença entre divisão real e divisão inteira?
3.5 este é o resultado da divisão real
7 / 2 = 3 (quociente da divisão inteira)
7 % 2 = 1 (resto da divisão inteira)
45. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
48
19. Escreva um comando para calcular 10% de um número.
Em primeiro lugar, vamos esclarecer que NÃO EXISTE O OPERADOR “porcentagem”. Na verdade,
“%” é o resto da divisão inteira. Portanto, o cálculo da porcentagem tem que ser feito pela ope-ração
equivalente: 10% = 10/100 = 0.10. A variável “porc” deve ser do tipo real. Não recomendo
o uso de 10/100, pois 10/100 pode ser zero, com a conversão automática de tipos. Então, use
sempre 0.10 no cálculo de 10%.
20. Suponha que um produto custe um determinado preço, mas, se pago à vista, o cliente ganha
5% de desconto. Escreva comandos para calcular o valor do desconto e o valor final do produto.
21. Escreva comandos para separar os dígitos de um número inteiro menor que 100 em dezena
e unidade.
Vamos entender, primeiramente, o que se quer: dado um número menor que 100, por exemplo,
29, deseja-se obter o dígito 2 (dezena) separado do dígito 9 (unidade); no caso de um número de
um só dígito, por exemplo, 3, o resultado seria 0 (dezena) e 3 (unidade). Bem, este é um problema
muito comum na programação e muito fácil de ser resolvido também! Basta usar os operadores
“/” e “%” com números inteiros.
Vamos fazer um pequeno teste: 29 dividido por 10 dá 2 e sobra 9, certo? 2 é a dezena de 29 e coinci-de
com o quociente da divisão inteira; 9 é a unidade de 29 e coincide com o resto da divisão inteira
por 10! No caso de n1 ser igual a 3, ficaria assim: 3 dividido por 10 dá 0 e sobra 3. Nesse caso, 0 é a
dezena (“/”) e 3 é a unidade (“%”).
Um bom teste aqui seria você responder: como poderíamos separar os 3 dígitos de números entre
100 e 999?
Se não conseguir resolver, esta é uma boa pergunta para o fórum!
46. Algoritmos e Linguagem de Programação
22. Suponha que, numa certa universidade, os alunos têm um número de 5 dígitos que os identi-ficam.
Desses 5 dígitos, os 2 primeiros indicam o ano em que o aluno entrou na universidade.
Escreva comandos para separar os 2 primeiros dígitos de um número inteiro de 5 dígitos que
representa a identificação do aluno.
Vamos entender o que se quer: dado um número de 5 dígitos, por exemplo, 99211, se deseja obter
os 2 primeiros dígitos, no caso, 99 (que indicaria que o aluno entrou em 1999 na universidade).
Mas e se o aluno entrou em 2000 ou 2009? O resultado teria que ser ano de entrada = 0. Vamos
fazer, agora, os testes. Vejamos: n1 é 00211. 00211 dividido por 1000 dá ZERO (que é o quociente)
e sobra 211. Pode parecer estranho, mas pense: quando se divide um número por 1000, o menor
resto é zero e o maior resto pode ser 999. Como queremos apenas o quociente da divisão inteira, o
resultado será “anoentrada = 0” (que, no caso, representaria 2000). Funciona!
Outro teste: n1 igual a 10231. 10231 dividido por 1000 dá 10 e sobra 231, certo? 10 é o quociente,
o que resulta em “anoentrada= 10” (que seria 2010)! Funciona mesmo!
Faça outros testes e verifique que dá certo. E como o cálculo é simples, não?
Unisa | Educação a Distância | www.unisa.br
49
3.5 Operações com Operadores Lógicos e Relacionais
23. Escreva um comando para verificar se um número é positivo ou negativo.
Observe que 0 pode ser considerado um número positivo e todo número menor que 0 é negativo.
24. Escreva um comando para verificar se um número é par ou ímpar.
Um número par é aquele que, dividido por 2, tem resto zero: 0, 2, 4, 6, 8, 10..., e um número ímpar é
aquele que, dividido por 2, tem resto diferente de zero: 1, 3, 5, 7, 9...
47. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
50
25. Escreva um comando para verificar se um número é maior que 100.
26. Escreva um comando para verificar se um número está entre 10 e 100.
Para se verificar se um número está entre dois limites, são necessárias duas comparações: uma
para o limite inferior e outra para o limite superior, e essas comparações têm que estar ligadas
pelo conectivo lógico “e”, quer dizer, somente quando as duas comparações forem verdadeiras, o
número está dentro dos limites. Não é como na Matemática, que usamos uma expressão do tipo
“10 ≤ n1 ≤ 100”!
27. Suponha que certo clube esportivo quer selecionar atletas para o time de basquete. As exi-gências
são: ter 1.85 m de altura ou mais, ter menos de 21 anos e ter, pelo menos, o primeiro
grau completo. Escreva um comando para verificar se um candidato pode ser ou não aprova-do
para o time de basquete. O grau de instrução é definido como: “0= sem instrução”, “1=pri-meiro
grau”, “2=segundo grau”, “3=superior”.
Observe que, ao se fazer a comparação da altura, não se faz referência à unidade de medida “me-tros”,
quer dizer, estaria errada uma comparação do tipo “altura >= 1.85 m”. O mesmo acontece
com a idade, em que os “anos” foram (e devem) ser omitidos.
48. Algoritmos e Linguagem de Programação
28. Suponha que o clube esportivo deseje, agora, formar um time masculino (sexo == ‘m’) e outro
feminino (sexo == ‘f’) e tenha mudado um pouco seus critérios. As exigências passaram a ser:
ter 1.85m de altura ou mais para os homens e 1.75 ou mais para as mulheres e ter menos de
21 anos. Escreva um comando para verificar se um candidato ou candidata pode ser ou não
aprovado(a) para o time de basquete.
Observe que surgiu o conectivo “ou” ligando as comparações de altura para os sexos diferentes,
que continuaram a ser ligados pelo conectivo “e” na comparação de idade! Pense por que é assim.
Caro(a) aluno(a), este capítulo foi uma excelente oportunidade para exercitarmos a linguagem de
Unisa | Educação a Distância | www.unisa.br
51
3.6 Resumo do Capítulo
programação.
3.7 Atividades Propostas
Agora é hora de você praticar um pouco sozinho(a)! A minha forte recomendação é que você faça
os exercícios sozinho(a), consultando os exemplos anteriores para ajudá-lo(a). Somente depois da sua
tentativa, é que você deve conferir as respostas. Boa sorte!
1. Escreva um algoritmo que leia e imprima o nome e as duas notas de um aluno.
2. Escreva um comando que calcule a média das duas notas lidas no exercício 3.1.1.
3. Escreva um comando que verifique se a média calculada no exercício 3.1.2 é maior ou igual a
7.0; se for, imprima uma frase dizendo que o aluno foi aprovado, caso contrário, imprima uma
frase dizendo que foi reprovado.
4. Escreva um algoritmo que leia o nome e as duas notas de um aluno, calcule a média das notas
e imprima uma frase dizendo se ele foi aprovado (média maior ou igual a 7.0) ou reprovado.
49. Elisamara de Oliveira
Unisa | Educação a Distância | www.unisa.br
52
5. Considere o trecho de algoritmo em PortuCê:
se (B1)
C1;
senão se (B2)
se (B3)
C2;
senão
{ C3;
C4;
}
C5;
Em PortuCê, não existe uma variável do tipo “lógico” a qual se possa atribuir um valor “verda-deiro”
ou “falso”. No entanto, o PortuCê considera o valor 0 (zero) como sendo falso e qualquer
outro valor diferente de zero como sendo verdadeiro. Nos exercícios que se seguem, considere
que os valores de B1, B2 e B3 representam valores “verdadeiros” (diferentes de zero) ou “falsos”
(iguais a zero) e responda à pergunta: “quais comandos serão executados”.
a) Se B1= Verdadeiro B2 =Verdadeiro e B3=Falso?
b) Se B1=Falso B2= Verdadeiro e B3= Falso?
c) Se B1=Falso B2=Verdadeiro e B3=Verdadeiro?
d) Quais os valores de B1, B2 e B3 para que somente o comando C5 seja executado?
6. Dado um conjunto de respostas “sim” ou “não” de várias pessoas e seu sexo (F=feminino,
M=masculino), escreva comandos em PortuCê para calcular:
a) o número de mulheres que responderam sim;
b) o número de homens que responderam não;
c) o número de mulheres e homens que responderam não.
50. Algoritmos e Linguagem de Programação
Unisa | Educação a Distância | www.unisa.br
53
7. Observe o algoritmo a seguir. Qual o valor de L após a execução deste algoritmo?
inteiro A, B, C;
real X, Y;
inteiro L;
principal()
{ A = 0; /* falso */
B = 1; /* verdadeiro */
C = 0; /* falso */
X = 1.5;
Y = 3.2;
se (C ou (X+Y>5) ou não(A e B))
L = 0;
senão
L = 1;
}
8. Escreva trechos de algoritmo em PortuCê que ajudem o Instituto Brasileiro de Geografia e Es-tatística
(IBGE) a fazer o censo populacional de uma certa cidade. Sabendo-se que os seguin-tes
dados foram pedidos aos cidadãos: SEXO (‘H’= homem, ‘M’= mulher) e RENDA (número de
salários-mínimos – sm), os trechos de algoritmo devem fornecer:
a) o total de homens;
b) o total de mulheres;
c) o total de pessoas da classe C (até 4 sm), da classe B (até 20 sm) e da classe A (acima de 20 sm).
9. Fornecidos os dados das candidatas a modelo: ALTURA, PESO e IDADE, escreva um trecho de
algoritmo para verificar se os dados se enquadram nos seguintes limites:
ALTURA: de 1.70 a 1.85 m
PESO: de 48.0 a 60.0 kg
IDADE: de 17 a 21 anos
Se os dados da candidata corresponderem a esses limites, deve ser impressa uma frase dizendo
que ela foi aprovada; caso contrário, que não foi aprovada.
10. Modifique o exercício anterior para que uma frase seja impressa após a verificação de cada
quesito, dizendo se a candidata foi aprovada ou não em cada um deles e uma frase final dizen-do
se foi aprovada ou não como modelo.
51. Neste capítulo, caro(a) aluno(a), você aprenderá uma metodologia que facilitará o processo de de-senvolvimento
de soluções algorítmicas para os problemas que serão propostos para você resolver. A
metodologia é composta de uma sequência de passos, cujo principal objetivo é ajudá-lo(la) a resolver
problemas dividindo-os por partes, diminuindo, assim, a sua complexidade. Como ficará bem claro logo
adiante, resolvendo cada parte do problema por vez, consegue-se chegar a soluções completas e com-plexas
a partir de soluções simples, que já foram, muitas vezes, encontradas para diversos outros proble-mas
semelhantes.
Você conhecerá os passos da metodologia e vários exemplos práticos serão fornecidos de maneira
a familiarizá-lo(la) com o método. É importante ressaltar que a metodologia é um processo dinâmico.
Você pode estar num passo mais adiante e identificar uma variável auxiliar e voltar aos passos anteriores
e alterá-los, por exemplo. Portanto, não se detenha aos detalhes, pelo contrário, sinta-se livre para criar
suas soluções. O método pretende ajudá-lo(la) e não engessá-lo(LA)! Vamos em frente!
4.1 Os Passos da Metodologia
Unisa | Educação a Distância | www.unisa.br
55
METODOLOGIA PARA A CONSTRUÇÃO
4 DE ALGORITMOS
Passo 1: Ler e entender o problema
É importante ler e reler, pelo menos 3 vezes, o problema até que ele seja completamente compreen-dido.
Não adianta querer buscar a solução de um problema que não esteja suficientemente esclarecido!
Passo 2: Listar todos os dados de entrada do problema
Um dado de entrada é aquele que será fornecido pelo usuário, ou seja, o dado que será lido pelo
programa.
Passo 3: Listar todos os dados de saída do problema
Um dado de saída é algo que será produzido ou calculado pelo programa; tudo aquilo que deve
ser apenas impresso não deve ser considerado um dado de saída.
52. Elisamara de Oliveira
Passo 4: Listar todas as variáveis auxiliares do programa
Unisa | Educação a Distância | www.unisa.br
56
Uma variável auxiliar é identificada como aquela que é necessária para o cálculo de alguma variável
de saída e não é variável de entrada. Por exemplo, num problema em que vários números serão lidos e
sua média deve ser calculada, o número é uma variável de entrada e a média é uma variável de saída,
mas como, para calcular a média, é necessário somar os números e dividir a soma pela quantidade de
números lidos, a soma e a quantidade de números são variáveis auxiliares do programa.
Assim, para identificar as variáveis auxiliares, basta analisar cada uma das saídas e verificar se, dadas
as entradas, há necessidade de mais alguma variável para facilitar o seu cálculo.
Passo 5: Declarar todas as variáveis do programa
Cada dado de entrada, cada dado de saída e cada variável auxiliar “geram” uma variável. As variáveis
do programa deverão ser uma para cada dado de entrada, uma para cada dado de saída e uma para cada
variável auxiliar.
É extremamente importante que o programador escolha nomes de variáveis significativos, que
possam exprimir a função da variável. Por exemplo, uma variável que receberá a idade de uma pessoa
não deveria se chamar “x”, nem mesmo “i” seria bom, o ideal seria “idade”.
Passo 6: Inicializar as variáveis do programa
Há um conjunto de pequenas regras que pode nos ajudar a encontrar os valores iniciais de cada
variável do programa, apesar de que nem todas as variáveis precisam ter valores iniciais:
ƒƒtoda variável de entrada é inicializada com o comando “leia”;
ƒƒtodo contador e todo somador devem ser inicializados com 0 ( zero);
ƒƒtodo produto deve ser inicializado com 1 (um).
Passo 7: Escrever o código para calcular cada uma das saídas do programa
Os principais problemas a serem solucionados, na maior parte das vezes, resumem-se no cálculo
das saídas do programa. Portanto, neste passo, cada uma das saídas deve ser analisada individualmente
e sua solução encontrada separadamente.
Passo 8: Imprimir os resultados do programa
Aqui, só devem ser impressos os resultados pedidos na especificação do problema.
Passo 9: Montar o algoritmo unindo os resultados dos passos 5 a 8
Os passos 5 a 8 têm a solução do problema. A montagem do algoritmo/programa pode seguir um
esquema básico, mas vai depender muito da lógica de cada problema. Portanto, o esquema a seguir
53. Algoritmos e Linguagem de Programação
serve apenas de orientação. Cada problema deve, no entanto, ser analisado logicamente para chegar ao
seu algoritmo.
Atenção
/* Nome do Programa e o que ele faz */
<passo 5 – declarar todas as variáveis do programa>
principal()
{ <passo 6 – inicializar as variáveis do programa >
<passo 7 – calcular cada uma das saídas do programa>
<passo 8 – imprimir os resultados do programa>
imprima(“Fim do programa”);
}
A estratégia que utilizaremos nesta seção é propor uma lista de exercícios e resolver alguns de-les
usando a metodologia, deixando outros para que você, utilizando soluções semelhantes, resolva-os
sozinho(a), ok? Então, vamos lá!
Unisa | Educação a Distância | www.unisa.br
57
Passo 10: Fazer o “teste de mesa” do programa a partir de diferentes valores iniciais
O “teste de mesa” consiste na execução de todas as instruções do programa a partir de conjuntos
de valores iniciais. Os valores iniciais devem ser escolhidos de maneira que as “condições de contorno”
do problema sejam verificadas. Por exemplo, num programa que trabalhe com flags, deve ser testada a
condição em que o valor do flag seja fornecido como dado inicial; num programa que só leia números
positivos, devem ser fornecidos números negativos e zero; entre outras situações possíveis.
4.2 Solução de Exercícios utilizando a Metodologia
4.3 Resumo do Capítulo
Neste capítulo, caro(a) aluno(a), você aprendeu uma metodologia que facilitará o processo de de-senvolvimento
de soluções algorítmicas para os problemas que serão propostos para você resolver. A
metodologia é composta de uma sequência de passos, cujo principal objetivo é ajudá-lo a resolver pro-blemas
dividindo-os por partes, diminuindo, assim, a sua complexidade. Como ficará bem claro logo
adiante, resolvendo cada parte do problema por vez, consegue-se chegar a soluções completas e com-plexas
a partir de soluções simples que já foram, muitas vezes, encontradas para diversos outros proble-mas
semelhantes.
Você conhecerá os passos da metodologia e vários exemplos práticos serão fornecidos de maneira
a familiarizá-lo com o método.
54. Elisamara de Oliveira
4.4 Atividades Propostas
Unisa | Educação a Distância | www.unisa.br
58
1. Escreva um algoritmo em PortuCê para calcular e imprimir a área e o perímetro de uma sala
retangular, sendo que os comprimentos das paredes (comprimento e largura) são fornecidos
pelo usuário.
2. Escreva um algoritmo em PortuCê para calcular e imprimir a área de uma esfera. O raio da es-fera
será fornecido pelo usuário. Obs.: A = 3.14*R2.
3. Escreva um algoritmo em PortuCê que calcule e imprima o valor em reais correspondente aos
dólares que um turista possui no cofre do hotel. O programa deve solicitar os seguintes dados:
quantidade de dólares guardada no cofre e cotação do dólar naquele dia.
4. Escreva um algoritmo em PortuCê que leia um número e informe se ele é par ou ímpar.
5. Escreva um algoritmo em PortuCê que leia 2 números e diga qual deles é o maior.
6. Escreva um algoritmo em PortuCê que calcule e imprima a quantidade de tijolos iguais neces-sária
para construir uma determinada parede. São dados de entrada do programa: dimensões
do tijolo (comprimento e largura) e dimensões da parede a ser construída (comprimento e
largura).
7. Escreva um algoritmo em PortuCê que calcule S, o alcance de um projétil, dados a velocidade
inicial v0 e o ângulo θ entre o cano do canhão e o solo. O valor de g corresponde à gravidade
que é de 9.8 m/s2. A fórmula a ser utilizada é:
8. Escreva um algoritmo em PortuCê que calcule a área A de um triângulo pela fórmula de Herão,
lendo os valores de entrada s, que é o semiperímetro, e a, b e c, que são os lados do triângulo:
9. Escreva um algoritmo em PortuCê para calcular o valor do desconto, sendo que o preço do
produto é fornecido pelo usuário e o desconto é de 5%. Apresentar o preço do produto, o valor
do desconto e o preço final com o desconto.
55. Algoritmos e Linguagem de Programação
10. Escreva um algoritmo em PortuCê para calcular e imprimir qual foi a porcentagem de desconto
dada em um determinado produto, sabendo-se o preço original do produto e o preço que foi
cobrado por ele depois do desconto serão fornecidos pelo usuário.
11. Escreva um algoritmo em PortuCê que receba dois valores inteiros nas variáveis A e B. O progra-ma
deve trocar os valores entre as variáveis (ou seja, ao término do programa, a variável A deve
Unisa | Educação a Distância | www.unisa.br
59
ter o valor inicial de B e vice-versa). Apresentar as duas variáveis no final.
12. Escreva um algoritmo em PortuCê para calcular e imprimir o valor a ser pago pelo período de es-tacionamento
do automóvel. O usuário entra com os seguintes dados: hora e minuto de entra-da,
hora e minuto de saída. Sabe-se que esse estacionamento cobra R$ 10,00 por hora ou fração.
13. Escreva um algoritmo em PortuCê que leia o valor de uma conta de luz e, caso o valor seja
maior que R$ 50,00, apresente a mensagem: “Você está gastando muito”. Caso contrário, exiba
a mensagem: “Seu gasto foi normal, parabéns”.
14. Escreva um algoritmo em PortuCê que receba a leitura do termômetro. Caso a temperatura
esteja abaixo de 100 °C, apresentar a mensagem de que a temperatura está muito baixa. Caso
a temperatura esteja entre 100 e 200 °C, apresentar a mensagem de que a temperatura está
baixa. Caso a temperatura esteja acima de 200 °C e inferior a 500 °C, apresentar a mensagem de
que a temperatura está normal. Caso contrário, apresentar a mensagem de que a temperatura
está muito alta.
15. Escreva um algoritmo em PortuCê que leia o valor do salário atual, calcule e imprima o valor
do novo salário de um funcionário. Considere que o funcionário deverá receber um reajuste de
15% caso seu salário seja menor que R$ 500.00. Se o salário for maior ou igual a 500, mas menor
ou igual a R$ 1000.00, o reajuste deve ser de 10%. Caso o salário seja maior que R$ 1000.00, o
reajuste deve ser de 5%.
16. Escreva um algoritmo em PortuCê que determine quanto será gasto para encher o tanque de
um carro, sabendo-se que o preço da gasolina é R$ 2.60 e o preço do álcool é R$ 1.80. O usuário
fornecerá os seguintes dados: tipo de carro (as opções como tipo de carro são a letra “G” – gaso-lina
ou a letra “A” – álcool; rejeitar valores inválidos) e capacidade do tanque em litros.
56. 5 A LINGUAGEM DE PROGRAMAÇÃO C
Neste capítulo, você, caro(a) aluno(a), poderá começar a traduzir seus primeiros algoritmos para a
linguagem de programação C. Isso o(a) capacitará a realizar as primeiras aulas práticas em laboratório.
Recomenda-se que você prepare em seu computador um ambiente adequado à programação em C e
comece a trabalhar sozinho(a), fazendo os programas da lista 4.1 como atividades extraclasse. O interes-sante
em se utilizar o PortuCê como pseudolinguagem é que ele segue quase totalmente as mesmas
Unisa | Educação a Distância | www.unisa.br
61
regras da linguagem C. Assim, começar a programar em C será muito fácil, você verá!
5.1 Tipos Básicos e Declaração de Variáveis em C
Saiba mais
• Um identificador em C é formado por caracteres alfanuméricos.
• O primeiro caractere tem que ser _ ou uma letra; os outros caracteres podem ser:
• letras: A-Z, a-z;
• dígitos: 0-9;
• sublinhado: _ .
• Não pode haver dois identificadores iguais.
• Letras minúsculas e letras maiúsculas são diferentes.
• Os identificadores não podem ser acentuados.
• Não pode haver espaço em branco num identificador.
• O caractere “ç” não pode ser usado num identificador.
• Um identificador não pode ter o mesmo nome das palavras reservadas do C (como main, if, else, int, char).
• Na linguagem C, há 5 tipos básicos (int, float, double, char e void) e quatro modificadores de tipos (long, short, signed
e unsigned), o que amplia muito os tipos de variáveis, mas, neste curso, usaremos apenas 3 tipos básicos:
• int;
• float;
• char.
• O tipo de dados “double (%Lf )” corresponde ao float, mas com maior capacidade de armazenamento.
• Para se declarar uma variável, escreve-se o nome de seu tipo, salta-se um espaço em branco, em seguida o nome do
seu identificador e ponto e vírgula para finalizar a declaração.
• Se mais de uma variável for do mesmo tipo básico, elas podem ser declaradas juntas, apenas separadas por vírgulas.
• Pode-se inicializar uma variável na sua declaração atribuindo-se a ela um valor inicial compatível com
seu tipo.
• Toda variável precisa ser declarada antes de ser utilizada.
• Não pode haver duas variáveis com mesmo nome, mesmo que tenham tipos básicos diferentes, a menos que algum
caractere maiúsculo ou minúsculo as diferencie.