Buscar

guiaa

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 128 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 128 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 128 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Orientada a Objetos 
Prof. Luiz Antonio Ferraro Mathias 
GUIA DA 
DISCIPLINA 
 
 
 
1 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Objetivo: 
A disciplina de Programação Orientada a Objetos (POO) tem como objetivo: 
esclarecer os conceitos da linguagem de programação C#, utilizar as técnicas de 
programação modular/estruturada, resolver problemas computacionais com uma visão 
sistêmica, desenvolvendo programas de computador, além de propor o aprendizado 
baseado em técnicas de programação orientada a objetos. 
 
Introdução: 
A programação é o processo de escrita, teste e manutenção de um programa de 
computador. O programa é escrito em uma linguagem de programação, embora seja 
possível, com alguma dificuldade, escrevê-lo diretamente em linguagem de máquina. 
Diferentes partes de um programa podem ser escritas em diferentes linguagens e 
programação. 
 
Um programa de computador, por outro lado, se traduz em um conjunto de instruções 
que descrevem uma tarefa a ser realizada por um computador. O termo pode ser uma 
referência ao código fonte, escrito em alguma linguagem de programação, ou ao arquivo 
que contém a forma executável deste código fonte. 
 
As diversas linguagens de programação funcionam de diferentes modos, por esse 
motivo, os programadores podem criar programas muito diferentes para diferentes 
linguagens; muito embora, teoricamente, a maioria das linguagens possa ser usada para 
criar qualquer programa. 
 
A Programação Orientada a Objetos (POO) é um modelo de análise, projeto 
e programação de software baseado na composição e interação entre diversas unidades 
chamadas de “objetos”. Os programas são arquitetados através de objetos que interagem 
entre si. 
 
 
 
2 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
1. FUNDAMENTOS DA COMPUTAÇÃO E PROGRAMAÇÃO 
 
1.1. O computador 
 
Do ponto de vista do usuário, ou seja, daquele que apenas faz uso do computador, ele 
é apenas uma máquina, isto é, um dispositivo eletrônico construído pelo homem, com o 
objetivo de auxiliá-lo na execução de suas tarefas. É uma máquina (hardware) que pode 
ser programada (software), apresentando as seguintes habilidades: 
 
a) Armazenar informações; 
b) Organizar essas informações; 
c) Manipular informações gerando novas; 
d) Comparar informações e em função dessa comparação, decidir; 
e) Efetuar cálculos matemáticos. 
 
Este conjunto de atividades que pode ser executada pelo computador recebe o nome 
de processamento de informações ou processamento de dados. Existem 3 (três) tipos 
básicos de informações que podem ser trabalhadas pelo computador entre as quais existe 
uma grande diferença: 
 
I. Informações numéricas: podem sofrer cálculo matemático. Exemplos: idade de 
uma pessoa, tamanho da base de uma figura geométrica e salário de um 
funcionário 
 
II. Informações alfanuméricas: não podem sofrer cálculo matemático. Exemplos: 
nome de uma pessoa, bairro de uma cidade, descrição de um produto, endereço 
de e-mail e telefone 
 
III. Informações lógicas: podem assumir apenas dois estados ou valores. 
Exemplos: verdadeiro ou falso, ligado ou desligado, true ou false, on ou off, 0 ou 
1, V ou F. 
 
 
 
 
3 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
 
Existem ainda outros tipos de dados que envolvem datas e moedas, tratadas por 
poucas linguagens de programação. Mas como regra geral os três tipos acima são comuns 
a praticamente todas as linguagens de programação existentes. 
 
Uma discussão um pouco mais detalhada sobre os tipos básicos de dados existentes 
e, utilizados pelo computador, será realizada oportunamente ao longo deste material 
 
 
 
Apesar da aparente “inteligência” dos computadores, estes precisam de 
instruções detalhadas para executarem a mais simples tarefa. Estas instruções 
estão inseridas no computador em várias camadas, sendo as de mais baixo 
nível responsáveis pelas operações mais básicas e as de alto nível as que 
executam os trabalhos mais sofisticados. 
 
 
 
1.2. A programação do computador 
 
O computador é uma máquina programável, ou seja, adaptável às necessidades do 
homem. A técnica para realização desta adaptação chama-se programação. Esta 
programação do computador, por sua vez, consiste em se colocar na memória da máquina, 
palavras ou símbolos gráficos que serão compilados e entendidos como ordens e, portanto, 
executados, desde que seja possível a execução. Existem diferentes conjuntos de palavras 
que podem ser entendidas e executadas pelo computador. Cada um desses conjuntos é 
chamado de Linguagem de Programação. Existem diferentes linguagens de programação 
disponíveis para utilização, cada uma das quais conhecida por um nome específico. Desta 
forma temos o C#, C++, Visual Basic, ASP, Java, PHP, Python etc. 
 
 
 
 
 
 
4 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Cada uma destas linguagens possui características próprias, utilizadas para 
aplicações específicas. Temos ainda nestas linguagens palavras diferentes para execução 
de uma mesma função, e cada uma destas palavras utilizada na programação do 
computador terá por objetivo executar uma tarefa específica conforme exemplificado 
abaixo. 
 
As palavras (instruções/comandos) têm por função a execução tarefas similares, 
como por exemplo, receber uma informação via teclado. Ao iniciar seu trabalho, o 
desenvolvedor (programador) define a linguagem pela qual deseja executar suas 
atividades. Isto é feito introduzindo-se um conjunto de programas (instruções) que fazem o 
computador passar a “entender” os comandos específicos da linguagem que será utilizada. 
O arquivo contendo as instruções preparadas pelo programador é conhecido por arquivo 
fonte ou código fonte. 
 
As linguagens de programação podem ser: 
 
a) Alto nível: linguagem de programação mais próxima sintaticamente da linguagem 
do ser humano. Tem como característica principal, a facilidade de entendimento e 
a comodidade na programação. 
b) Baixo nível: próxima da linguagem de máquina, por isso, mais difícil de ser 
interpretada por nós e, também, de ser programada. 
 
1.3. Compilação 
 
Uma vez projetado a solução lógica (fluxogramas) e escrito o programa em um papel, 
deve-se começar o processo de introduzir o programa em um arquivo no disco rígido do 
computador. A introdução e a modificação do programa em um arquivo são feitas utilizando-
se um editor de texto, que é um programa que contém as características necessárias para 
a digitação e gravação dos seus aplicativos e, também, permite a correção e manutenção, 
quando necessário. A aprendizagem de como utilizar um editor de textos torna muito mais 
fácil a tarefa de introduzir o programa. No caso específico do editor de programas para o 
Visual C#, você verá que existem inúmeros recursos que facilitarão a nossa vida de 
digitador. Estes programas escritos em Visual C# estão codificados em linguagem de alto 
nível, projetadas para facilitar a programação. 
 
 
5 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Um computador não entende as linguagens de alto nível, portanto, um programa 
escrito em linguagem de alto nível precisa ser traduzido para linguagem de máquina. A 
tradução de um programa escrito em linguagem de alto nível, como C#, para uma 
linguagem que o computador possa entender faz-se através de outro programa, conhecido 
como compilador. 
 
O compilador faz a função de um tradutor em nosso dia a dia, ou seja, ele lê os códigos 
em linguagem de alto nível e traduz para linguagem de máquina. Comodamente, se algum 
erro existir em nosso código fonte, o compilador nos avisará e evidentemente abortará a 
tradução, até que tenhamos codificado o programa com a sintaxe correta.Vale a pena 
salientar que o compilador é um programa e que também só entende uma linguagem para 
tradução, ou seja, para cada linguagem existe um compilador próprio. 
 
É chamado de código objeto o programa gerado a partir do processo de compilação, 
ou seja, este código não está legível para nós e sim para a máquina. Este é o programa 
que será executado pelo computador. As relações em tempo de compilação e de execução 
dos códigos C# estão detalhadas na figura 1 abaixo. 
 
Figura 1: Relações em tempo de compilação e de execução dos códigos C#. 
 
1CLI (Common Language Infrastructure) da Microsoft. Um padrão internacional que é 
a base para a criação de ambientes de execução e de desenvolvimento nos quais 
linguagens e bibliotecas funcionam de forma integrada. 
 
 
 
6 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Com base nos esclarecimentos prestados acima, podemos considerar, no 
desenvolvimento e processamento de programas de computador, 3 (três) tipos distintos de 
códigos, a saber: 
 
a) Código fonte – programa gerado pelo desenvolvedor (programador) – codificado 
em uma linguagem de programação de alto nível. 
b) Código objeto – programa gerado a partir do processo de programação, não 
legível para nós e sim para a máquina. 
c) Código executável – programas executáveis gerados a partir do código objeto 
 
1.4. O Visual Studio .NET 
 
O Visual Studio é um IDE – Integrated Development Environment (Ambiente de 
Desenvolvimento Integrado) que permite ao desenvolvedor utilizar uma ou várias das 
linguagens disponíveis para criar seus programas. A Microsoft disponibiliza 3 (três) versões 
do IDE do Visual Studio: Community; Professional; e Enterprise. Estas diferentes versões 
possuem recursos específicos que podem ser importantes dependendo do profissional ou 
da empresa que a irá utilizá-las. Detalhes e componentes destas diferentes versões podem 
ser encontrados no site da Microsoft no endereço https://visualstudio.microsoft.com/pt-
br/downloads/. 
 
1.4.1. O que é o .NET Framework 
 
O .NET Framework é um conjunto de programas rotinas e componentes, que são 
integrados ao sistema operacional com o objetivo de permitir o desenvolvimento e a 
execução de programas criados a partir da plataforma .NET ou outra plataforma que deseje 
utilizar os componentes .NET Framework. 
 
O .NET Framework permite a criação de aplicativos para serem utilizados em 
“Ambiente Windows”, diretamente na Web, em Dispositivos móveis e em aplicativos do 
pacote Office. Possui dois componentes principais: Common Language Runtime (CLR) e 
Biblioteca de Classes. 
 
https://visualstudio.microsoft.com/pt-br/downloads/
https://visualstudio.microsoft.com/pt-br/downloads/
 
 
7 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
1.4.1.1. O Common Language Runtime CLR 
 
É a base do .NET, fornece os principais serviços de gerenciamento de memória de 
arquitetura de comunicação de segurança, de compilação e outros. Em especial é 
importante destacar o serviço de gerenciamento de memória utiliza o GC – Garbage 
Collection (coletor de lixo), um componente que de tempos em tempos varre a memória do 
computador identificando e limpando dados que não são mais utilizados. 
 
A constante limpeza da memória, evita que o programador tenha que constantemente 
utilizar comandos para limpar a memória do sistema ou que, em caso de não existirem 
estes comandos, o usuário tenha que constantemente reiniciar o computador. Reiniciar o 
computador além de ser uma operação bastante desagradável é muito custoso em 
dispositivos portáteis (que na verdade nunca são desligados e sim hibernados) e em 
servidores de rede. 
 
1.4.1.2. A Biblioteca de Classes 
 
É uma coleção de objetos (programas), reutilizáveis e compartilháveis que podem ser 
utilizados pelo programador para facilitar o desenvolvimento de seus aplicativos. 
 
1.4.2. O que é o C# 
 
O C# é uma das linguagens integrantes do Visual Studio. É uma linguagem voltada a 
objetos que tem suas raízes na linguagem C. 
 
 
 
 
 
 
 
 
 
 
 
8 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
1.4.3. Máquina Virtual 
 
Em uma linguagem de programação como C e Pascal, temos a seguinte situação 
quando vamos compilar um programa: O código fonte é compilado para código de máquina 
específico de uma plataforma e sistema operacional. Muitas vezes o próprio código fonte é 
desenvolvido visando uma única plataforma. 
 
Esse código executável (binário) resultante será executado pelo sistema operacional 
e, por esse motivo, ele deve saber conversar com o sistema operacional em questão. Isto 
é, temos um código executável diferente para cada sistema operacional diferente. 
Precisamos reescrever um mesmo pedaço da aplicação para diferentes sistemas 
operacionais, já que eles não são compatíveis. 
 
O C# utiliza o conceito de máquina virtual. Entre o sistema operacional e a aplicação 
existe uma camada extra responsável por "traduzir" — mas não apenas isso — o que sua 
aplicação deseja fazer para as respectivas chamadas do sistema operacional onde ela está 
rodando no momento. 
 
Uma máquina virtual é um conceito bem mais amplo que o de um interpretador. Como 
o próprio nome diz, uma máquina virtual é como um "computador de mentira": tem tudo que 
um computador tem. Em outras palavras, ela é responsável por gerenciar memória, threads, 
a pilha de execução etc. 
 
1.4.4. Como um programa C# é executado 
 
A arquitetura .NET apresentada no Microsoft Visual Studio, utiliza os mesmos 
conceitos da tecnologia JAVA que converte os programas por intermédio do JIT (Just In 
Time Compiler). Um programa desenvolvido em C# é convertido para uma linguagem 
Assembly, através de um compilador chamado MSIL (Microsoft Intermediate Language), 
que é capaz de gerar arquivos dos tipos: 
 
 
 
 
 
 
9 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
a) EXE – Arquivos Executáveis, (Programas que podem ser executados diretamente 
nos computadores) 
b) DLL – Biblioteca de link Dinâmico que são funções que podem ser utilizadas por 
diversos programas. 
c) ASPX – Páginas Webs (Programas que podem ser executados diretamente na 
World Wide Web – Páginas Web, Aplicações Web e Serviços Web). 
d) ASMX – Rotinas que podem ser instaladas em Servidores Web . 
e) Programas para serem utilizados em Windows Phone. 
 
No momento da execução do programa ele é novamente compilado, desta vez pelo 
compilador JIT de acordo com o dispositivo e o ambiente em que ele será executado. 
 
1.4.5. Visual Studio C# 
 
O Visual Studio é a plataforma da Microsoft destinada a desenvolvedores que 
trabalham com a linguagem de programação C# e com o framework. Ele conta com uma 
IDE (Integrated Development Environment) que permite o desenvolvimento de programas 
em diversas linguagens (figura 2) e interfaces (aplicações console, windows, web etc.). 
 
Nesse curso escreveremos todo o código utilizando o Visual Studio Comunity, a 
versão gratuita da ferramenta de desenvolvimento de aplicações, que é distribuída pela 
própria Microsoft. Apesar das explicações serem feitas com base na versão Comunity, tudo 
funcionará da mesma forma dentro das versões pagas da ferramenta. O Visual Studio 
Comunity pode ser encontrado no site: https://visualstudio.microsoft.com/pt-br/downloads/. 
 
Dúvidas a respeito da instalação podem ser esclarecidas no site: 
https://docs.microsoft.com/pt-br/visualstudio/install/install-visual-studio?view=vs-2022 
 
A versão que utilizaremos neste material é a Visual Studio Comunity 2017, todavia, as 
mesmas aplicações podem ser executadas em versões mais recente como a 2022. Durante 
a instalação do Visual Studio, o .NET Framework também será, automaticamente, instalado 
na máquina, então ela estará pronta paraexecutar as aplicações escritas em C#. 
 
https://visualstudio.microsoft.com/pt-br/downloads/
https://docs.microsoft.com/pt-br/visualstudio/install/install-visual-studio?view=vs-2022
 
 
10 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Figura 2: Ambiente de desenvolvimento integrado do Visual Studio C#. 
 
Um exemplo de programa codificado na linguagem C# (console application) é exposto 
na figura 3 abaixo. 
 
 
Figura 3: Exemplo de aplicação tipo “console” em linguagem C#. 
 
 
 
 
 
 
 
11 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Quando queremos um programa que trabalha com o terminal do sistema operacional, 
precisamos criar um tipo diferente de projeto no Visual Studio, o Console Application. Para 
criarmos a aplicação que usa o terminal, devemos escolher o Console Application na janela 
do assistente do Visual Studio. 
 
Quando criamos uma aplicação deste tipo, o Visual Studio cria um projeto com uma 
classe que contém um método (este assunto será tratado oportunamente no material) 
chamado “Main”. É esse método que será executado quando pressionarmos a tecla “F5” 
para rodar o programa. Os exemplos de código C# deste material são aplicações do tipo 
Console Application. 
 
1.5. Inicializando o C# no IDE do Visual Studio 
 
Antes da inicialização do Visual Studio é importante verificar se este foi instalado 
corretamente no computador. Conforme exposto anteriormente, nesse curso escreveremos 
todo o código utilizando o Visual Studio Comunity, a versão gratuita da ferramenta de 
desenvolvimento de aplicações, que é distribuída pela própria Microsoft. O Visual Studio 
Comunity pode ser encontrado no site: https://visualstudio.microsoft.com/pt-br/downloads/. 
 
1.5.1. Utilizando o Visual Studio 
 
Para iniciar o Visual Studio, basta, no Menu Iniciar procurar o item “Visual Studio 
2017” ou versão posterior, que será inicialmente fornecida a Tela de Splash abaixo (figura 
4): 
 
Figura 4: Tela de inicialização do Visual Studio. 
 
https://visualstudio.microsoft.com/pt-br/downloads/
 
 
12 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Após a tela de Splash, surgirá a Página Inicial (figura 5) do Visual Studio, com diversas 
opções, dentre elas a que permite que sejam abertos programas já criados anteriormente. 
 
 
Figura 5: Página inicial do Visual Studio. 
 
Caso se deseje criar um programa, tratado pelo Visual Studio como Projeto, basta 
clicar em “Arquivo” e no Menu suspenso que surgir escolher “Novo” e no Novo Menu 
suspenso escolher “Projeto” (figura 6). 
 
 
Figura 6: Tela de criação de um novo programa. 
 
 
13 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Na tela Novo Projeto, basta escolher o Visual C#, em suas opções escolher “Área de 
trabalho clássica do Windows e na relação de aplicativos escolher “Arquivo de Console 
(.NET Framework)”, conforme figura 7. 
 
 
Figura 7: Seleção do tipo de “aplicativo de console”. 
 
Observação: Aplicativos de Console (Console Application) são utilizados para criar 
aplicativos de linha de comando, utilizando o Prompt do Windows, não tendo, portanto, 
uma interface visual. A vantagem deste tipo de programação é ser leve e não desviar a 
atenção do programador para a implementação da interface, fazendo com que ele se 
concentre nos comandos e no comportamento do programa. 
 
 
 
 
 
 
 
 
 
 
 
 
14 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
1.5.1.1. Como “salvar” o Projeto 
 
A exemplo de qualquer trabalho de computador, antes de iniciar a sua 
implementação, inclusive antes de clicar na Área de Programação, é recomendado salvar 
o projeto. É interessante que seja criado uma pasta, no computador, para armazenar todos 
os arquivos de maneira que esta pasta seja facilmente enviada e copiada para os diferentes 
computadores que serão utilizados durante o desenvolvimento. Para tanto, a sugestão é 
que na tela “Novo projeto”, conforme figura anterior, os dados para salvar (na parte inferior 
da tela) sejam alterados conforme a seguir: 
 
Nome: Ex01 
Local: c:\Users\Nome_usuario\desktop (Área de trabalho) 
Nome da Solução: Ex01 (já é sugerido automaticamente igual ao nome) 
 
Figura 8: Tela para salvar o nome do projeto. 
 
1.5.1.2. Elementos da área de programação do IDE do Visual Studio 
 
Após realizar as operações do item anterior, será aberto o “Ambiente de 
Desenvolvimento do C#” com aspecto conforme abaixo (figura 9): 
 
 
Figura 9: Ambiente de desenvolvimento do C#. 
 
 
15 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Observações: 
a) Todas as seções de um programa em C# iniciam com chave de abertura “{“ e 
fechamento com chave de fechamento “}”. 
b) Após o nameespace seguido do nome do programa existe uma chave { abrindo o 
programa que é fechada no final do programa }. 
c) Após a class program, existe uma chave { abrindo a classe que é fechada na 
penúltima linha do programa }. 
d) Após a declaração do método Main – static void Main(string[] arg), existe uma 
chave de abertura “{“ e todos os comandos que o programador for escrever 
deverão estar após esta chave e antes da chave de fechamento “}” que facha o 
método. 
e) Durante a programação o usuário também deverá colocar chaves conforme será 
orientado nas aulas seguintes. 
 
 
Figura 10: Ambiente de desenvolvimento do C#. 
 
 
 
 
 
 
 
 
 
Os “using systens” definem as classes 
externas que serão utilizadas pelo C#. 
Nesta primeira parte do curso, serão 
utilizadas somente as classes definidas pelo 
C#, entretanto, o programador pode criar suas 
próprias classes. 
 “name space” é o nome do programa. 
 “class Program” será utilizado futuramente 
quando se utilizar o conceito de classes. 
Declara o método Main. A palavra void 
declara que não estão sendo passados 
valores 
Os comandos devem ser escritos entre os 
chaves (chave de abertura { e de fechamento 
}. 
 
 
16 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
1.5.1.3. Execução do programa 
 
Conforme exposto anteriormente, o computador só entende linguagem de máquina, 
ou seja, sinais elétricos. Com objetivo de facilitar a interpretação destes sinais elétricos pelo 
computador, decidiu-se que se trabalharia unicamente com dois tipos de sinais ligado e 
desligado (que eletricamente constitui-se em “com tensão elétrica” e “sem tensão elétrica”). 
 
Para facilitar, as informações destes dados para o computador, decidiu-se utilizar o 
valor 1 para ligado e o valor 0 para desligado. Então, qualquer que seja o programa, para 
que ele passe instruções ao computador ele precisa fornecer conjuntos de zeros (0) e uns 
(1), portanto, mesmo uma linguagem de programação de alto nível, como é o caso do C#, 
em última análise precisa fornecer ao computador conjuntos de zeros (0) e uns (1). 
 
No caso do C#, o programa gerado pelo desenvolvedor, que tem o nome de 
programa fonte, e tem a extensão “cs”, não é um conjunto de zeros (0) e uns (1) e, portanto, 
precisa ser convertido para ser executado. Desta forma, a execução de um programa criado 
em C# pode ser feita de duas maneiras: 
 
I. Dentro do ambiente do C#. 
 
Neste caso o próprio arquivo de extensão “cs” sofre um processo chamado de 
“debug”, e caso não existam erros o programa será “debugado” e executado 
imediatamente. A operação de debug pode ser disparada das seguintes maneiras: 
 
a) Escolhendo no menu Debug (Depurar) o item “Start debug” (Iniciar depuração); 
b) Digitando a tecla F5; 
c) Clicando na seta “Start debugging” (iniciar) da Barra de Ferramentas. 
 
 
 
 
 
 
 
 
 
17 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
II.Fora do Ambiente C#. 
 
Neste caso o arquivo “cs” será compilado, gerando um arquivo executável. Este 
arquivo executável pode ser executado em qualquer computador que possua o .NET 
Framework instalado. Em versões anteriores, para gerar o programa executável, é 
necessário utilizar a Build Solution, nas novas versões existe a possibilidade de gerar um 
pacote inteiro que será apresentado em outras oportunidades. 
 
1.5.1.4. Erros durante a operação de “debug” 
 
A operação de debug irá conferir o programa com objetivo de verificar se existem 
erros de sintaxe (erros na escrituração dos comandos). Caso existam erros, o processo é 
interrompido e surge para o usuário o Quadro de Mensagens abaixo (figura 11). 
 
 
Figura 11: Tela de erro durante a operação de “debug”. 
 
Ao receber o quadro de mensagem o desenvolvedor já sabe que seu programa 
apresenta um erro, portanto ele precisa procurar o erro. Para procurar o erro ele deve 
clicar o botão “Não” (para interromper a compilação) e verificar na parte inferior da tela 
as mensagens que dão as informações necessárias para que o usuário concerte o erro. As 
mensagens deverão ser algo como a figura 12 abaixo, onde é informado: 
 
 
Figura 12: Mensagens de erro durante a operação de “debug”. 
 
 
 
 
 
18 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
• A descrição de erro (no exemplo, é esperado um ;). 
• O nome do arquivo (no exemplo Program.cs). 
• A linha em que o erro foi encontrado (no exemplo linha 16). 
• A coluna que o erro foi encontrado (no exemplo a coluna 39). 
• O nome do projeto (no exemplo Ex01). 
 
1.6. A importância da Lógica Computacional 
 
A Lógica Computacional tem por objetivo estabelecer técnicas e critérios gerais de 
programação do computador visando à execução de atividades específicas, maximizando 
a utilização dos recursos do computador, utilizando procedimentos claros, de fácil 
entendimento, minimizando a quantidade de memória e o tempo de execução dessas 
atividades. 
 
A Lógica Computacional independe das linguagens. Qualquer que seja a linguagem 
utilizada existe uma sucessão de instruções que devem ser dadas ao computador para que 
ele execute a tarefa desejada. Por esta razão a Lógica será estudada independentemente 
de qualquer linguagem. Para isto, a Lógica será desenvolvida, utilizando figuras 
geométricas para representar as várias instruções a serem dadas ao computador e, 
também, através de pseudocódigos. O conjunto de instruções representadas por figuras 
geométricas é denominado Fluxograma. Apresentamos abaixo, um fluxograma, mostrando 
a existência de figuras geométricas encadeadas, cada uma representando uma instrução. 
Os conceitos que norteiam a utilização de fluxogramas e pseudocódigos serão 
gradativamente explicados ao longo do texto. Na figura 13 é apresentado um exemplo de 
fluxograma 
 
 
 
 
 
 
 
 
19 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Figura 13: Exemplo de fluxograma da solução lógica de um problema. 
 
1.6.1. A representação do raciocínio lógico através de fluxogramas 
 
Os fluxogramas procuram representar os algoritmos de uma forma visual, auxiliando 
o programador a raciocinar. A partir deles é possível construir programas com facilidade 
independente da linguagem de programação que está sendo utilizada. São formados a 
partir de linhas, setas e figuras geométricas. As linhas e setas representam o fluxo, ou seja, 
a sequência que o programa deve seguir. As figuras são utilizadas para representar os 
comandos. Cada comando característico possui uma figura de forma peculiar. No final 
deste material o aluno pode encontrar a lista de figuras utilizadas nos fluxogramas e seus 
significados. 
 
 
 
 
 
 
INICIO
P/ I = 1
ate 100
M = I * 3
M
FIM
 
 
20 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
1.6.2. Regras para utilização de fluxogramas 
 
a) Todo elemento de um fluxograma deve ter apenas uma entrada e pelo 
menos uma saída. (exceto os de Início, Fim e os de conexão); 
b) Os traços que ligam os elementos (símbolos gráficos) devem ser sempre 
horizontais ou verticais e representam o fluxo lógico de execução do 
programa; 
c) Um fluxograma tem apenas um Início e um Fim; 
d) O sentido do fluxo da informação não pode retornar para cima, a menos que 
esteja sendo usado um comando específico para este fim; 
e) Nas caixas de decisão marcar pelo menos uma saída com “S” ou “N” de 
acordo com o caso; 
f) As linhas de um fluxograma jamais devem se cruzar se não for em um nó de 
ligação; 
g) Nunca utilize uma linha de retorno de laço para introduzir instruções. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
2. VARIÁVEIS, OPERADORES E EXPRESSÕES 
 
2.1. Instruções 
 
Des 
 
Uma outra regra também muito importante é que a linguagem C# diferencia os 
caracteres minúsculos dos maiúsculos (Case Sensitive) e suas instruções devem ser 
codificadas como definidas. Por exemplo, a instrução “Console.WriteLine("O casal nota 
10!");” deverá ser digitada exatamente com esses caracteres, se não, ocorrerá erros de 
compilação. Veja a figura 14 com a observação sobre o erro ao encontrar a palavra 
“console”, mas iniciando com um caractere minúsculo. 
 
 
Figura 14: Recurso do “case sensitive” do Visual Studio C#. 
 
 
 
 
Para evitar erros desta natureza, sugere-se a utilização da técnica da codificação com 
o recurso “IntelliSense“ que o framework disponibiliza para você. O “IntelliSense” é uma 
ajuda de preenchimento de código que inclui inúmeras funcionalidades: Listar Membros, 
 
 
22 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
Informações do Parâmetro, Informações Rápidas e Completar Palavra. Essas 
funcionalidades ajudam você a aprender mais sobre o código que está usando, a manter o 
acompanhamento dos parâmetros que está digitando e a adicionar chamadas a métodos e 
propriedades pressionando apenas algumas teclas. Veja o exemplo na figura 15 e 
experimente você também. 
 
 
Figura 15: Recurso “IntelliSense” do Visual Studio C#. 
 
2.2. A memória do computador 
 
Para que o computador possa processar dados, se faz necessário que eles estejam 
armazenados na memória do computador. Esta memória pode ser entendida como um 
conjunto de pequenos “pedaços”, cada um identificado por um número distinto conhecido 
por endereço. Este endereço permite que as informações armazenadas na memória da 
máquina sejam facilmente localizadas. 
 
Cada uma destes “pedaços” ou endereços é conhecido por byte (figura 16). Neles 
podemos armazenar um caractere gráfico qualquer, isto é, uma letra, símbolo ou sinal 
gráfico. Cada byte é composto por um agrupamento de oito bits (menor memória 
endereçável de um computador e menor unidade de armazenamento), numerados em 
ordem decrescente de 7 (sete) até 0 (zero). Por sua vez cada bit é capaz de armazenar 
uma informação binária (0 ou 1). Este armazenamento pode ser feito fisicamente através 
 
 
23 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
de diferença de polaridade elétrica, diferença de nível de tensão, polaridade magnética e, 
no caso de mídias óticas, marcas em uma superfície reflexiva. 
 
 
Figura 16: Representação esquemática de um byte de memória no computador. 
 
A memória do computador é dividida em regiões distintas, dentre as quais, podemos 
destacar a memória “RAM” (Random Access Memory). Trata-se de uma memória de 
acesso randômico ou aleatório), estando permanentemente disponível ao usuário do 
computador, permitindo que nesta sejam gravados, lidos ou apagados dados existentes. É 
nesta memória que estão armazenados os dados e programas passíveis de 
processamento, e comoconsequência disto, as informações podem ser modificadas 
continuamente a qualquer momento. Na figura 17 abaixo, é apresentado um exemplo de 
armazenamento de informação na memória RAM do computador. 
 
 F A C U L D A D E 
 
Figura 17: Esquema de um trecho da memória interna do computador 
 
Conforme esclarecido anteriormente, cada célula de memória pode armazenar um 
caractere, símbolo ou dígito. Neste exemplo a literal “FACULDADE” está ocupando 9 (nove) 
células ou bytes de memória do computador. 
 
2.3. Tipos de dados 
 
Dentre as habilidades existentes no computador citadas anteriormente, o 
processamento realizado pela máquina permite a manipulação de informações contidas em 
sua memória, as quais são representadas através de diferentes tipos de dados. 
Destacaremos os dados de acordo com a informação que pode ser contida neles. 
 
 
 
Bit
7
Bit
4
Bit
5
Bit
6
Bit
2
Bit
3
Bit
0
Bit
1
BYTE
 
 
24 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
2.3.1. Dados literais numéricos 
 
São caracterizados por dados que podem sofrer operações matemáticas, podendo ser 
divididos em: 
 
a) Dados numéricos inteiros: não possuem componentes decimais ou fracionários 
podendo ser positivos ou negativos. Exemplos: 
 
Tipo Exemplo 
número inteiro positivo 38 
número inteiro 0 
número inteiro negativo -5 
 
b) Dados numéricos reais: são aqueles possuem componentes decimais ou 
fracionários, e, também, podem ser positivos e negativos. Exemplos: 
 
Tipo Exemplo 
Número real com uma casa decimal 1.5 
Número real positivo com 2 casas decimais 19.02 
Número real positivo sem casas decimais 893. 
Número real negativo com uma casa decimal -20.8 
Número real em notação científica 1.4E-5 (Ou seja: 1.4 * 10-5) 
 
Nota: Normalmente as linguagens de programação adotam o ponto (.) como separador 
decimal. Algumas linguagens, por outro lado, permitem que o programador escolha o 
separador decimal entre o ponto e a vírgula. Linguagens como C++, C#, Java, dentre 
outras, adotam o ponto sem possibilidade de escolha. 
 
2.3.2. Dados literais alfanuméricos 
 
Os dados do tipo literal são caracterizados por uma sequência de caracteres contendo 
letras, símbolos e/ou dígitos. É também conhecido como alfanumérico, cadeia de 
caracteres ou “string”. As informações alfanuméricas não podem sofrer operações 
matemáticas, mas podem sofrer operações lógicas como será visto adiante. Exemplos: 
 
 
 
25 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Tipo Exemplo 
“Unisanta” Literal de comprimento 8 
“ ” Literal de comprimento 1 
“123456” Literal de comprimento 6 
“0” Literal de comprimento 1 
“AbCdEfGh” Literal de comprimento 8 
“1+3+4=8” Literal de comprimento 7 
 
 Como apresentado nos exemplos acima, o símbolo “ (aspas) é utilizado 
para representar dados do tipo literal. As aspas simples também podem ser utilizadas 
para o mesmo fim, desde que uniformemente em todo documento. 
 
O computador é uma máquina eletrônica que somente trabalha com informações 
elétricas que são externamente representadas por 0 e 1. Por esta razão todas as 
informações são tratadas e convertidas para o sistema binário para que possam ser 
operadas internamente. Quando o computador opera com letras ou sinais gráficos, esta 
transformação para binário não pode ser efetuada. Para resolver este problema, as letras, 
os sinais gráficos e os algarismos são transformados em um código numérico de acordo 
com uma tabela denominada “tabela ASCII” (American Standard Code for International 
Interchange), de uso generalizado, código este que é então convertido para binário para 
que possa assim ser armazenado na memória. 
 
32 - 48 - 0 64 - @ 80 - P 96 - ` 112 - p 
33 - ! 49 - 1 65 - A 81 - Q 97 - a 113 - q 
34 - “ 50 - 2 66 - B 82 - R 98 - b 114 - r 
35 - # 51 - 3 67 - C 83 - S 99 - c 115 - s 
36 - $ 52 - 4 68 - D 84 - T 100 - d 116 - t 
37 - % 53 - 5 69 - E 85 - U 101 - e 117 - u 
38 - & 54 - 6 70 - F 86 - V 102 - f 118 - v 
39 - ´ 55 - 7 71 - G 87 - W 103 - g 119 - w 
40 - ( 56 - 8 72 - H 88 - X 104 - h 120 - x 
41 - ) 57 - 9 73 - I 89 - Y 105 - i 121 - y 
42 - * 58 - : 74 - J 90 - Z 106 - j 122 - z 
43 - + 59 - ; 75 - K 91 - [ 107 - k 123 - { 
44 - , 60 - < 76 - L 92 - \ 108 - l 124 - | 
45 - - 61 - = 77 - M 93 - ] 109 - m 125 - } 
 
 
26 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
46 - . 62 - > 78 - N 94 - ^ 110 - n 126 - ~ 
47 - / 63 - ? 79 - O 95 - _ 111 - o 
 
Tabela 1: Tabela ASCII. 
 
 Com esta tabela, as letras estão colocadas respeitando a ordem alfabética, 
o computador é capaz de comparar informações alfanuméricas. O computador “sabe” que 
uma letra antecede outra na ordem alfabética quando seu código ASCII é menor. Observe 
a tabela acima e verifique que o código de A é 65 enquanto de B é 66 o que garante para 
o computador que A antecede B na ordem alfabética. Quando as informações contêm mais 
de uma letra esta comparação também é possível. O processo dar-se-á através da 
comparação de letra e letra, a partir da primeira, até concluir a que é anterior na ordem 
alfabética. 
 
2.3.3. Dados lógicos 
 
O tipo de dado lógico é utilizado para representar dois estados, dois valores lógicos 
possíveis: verdadeiro e falso. Os dados lógicos são também conhecidos e chamados de 
booleanos, menção feita ao matemático George Boole. Exemplo: 
 
Tipo Exemplo 
.V. Valor lógico verdadeiro 
.F. Valor lógico falso 
True Valor lógico verdadeiro 
False Valor lógico falso 
Sim Valor lógico verdadeiro 
Não Valor lógico falso 
1 Valor lógico verdadeiro 
0 Valor lógico falso 
 
 
 
Diferentemente das variáveis matemáticas, as variáveis nos computadores 
não são delimitadas por + e - , mas possuem limites finitos máximos e 
mínimos dependendo de cada tipo. Esta limitação é devida à quantidade de 
bytes que cada tipo de variável pode ocupar na memória. 
 
 
27 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Hierarquia dos Tipos de Dados 
 
2.4. Variáveis de memória 
 
Uma variável representa uma região de memória (endereço) que poderá alocar 
(armazenar) valores durante a execução do programa. Cada um destes endereços de 
memória será identificado por um nome, denominado variável. Portanto, em uma variável, 
você poderá armazenar diferentes valores durante a execução do programa, mas 
evidentemente, não ao mesmo tempo. 
 
Variáveis são como caixas na memória que podem armazenar um valor. A linguagem 
C# tem muitos tipos de valores que podem ser armazenados e processados, entre eles: 
inteiros, reais, strings (conjunto de caracteres) etc. Declaramos o tipo da variável seguido 
de seu nome em uma única instrução, por exemplo: int idade; 
 
Neste caso, temos uma variável de tipo inteiro, denominada idade (identificador). O 
tipo de variável “int” é o nome de um dos tipos primitivos da linguagem C#, que representa 
um valor inteiro, ou seja, sem ponto flutuante (casas decimais). 
 
 
 Curto 
 Inteiro Médio 
 Longo 
 Numérico 
 Baixa precisão 
 Real Média precisão 
 Alta precisão 
 
Principais 
 
String 
 
 Tipos de Dados Alfanumérico 
Caractere 
 
 
 
 Lógico 
 
 
 
 
28 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
O processo de armazenamento de dados na memória do computador pode ocorrer de 
principalmente duas formas: através da instrução de atribuição ou através da instrução que 
permita ao computador receber uma informação via teclado. 
 
2.4.1. Instrução de atribuição 
 
Esta instrução considerada uma das mais importantes dentre as várias entendidas 
pelo computador, consiste em disponibilizar na memória do computador uma informação 
para que ele possa processá-la e que ela esteja constantemente disponível paraacesso 
por parte deste. A instrução de atribuição é representada da seguinte forma: 
 
<identificador literal> = <informação> 
<Identificador literal> geralmente chamado de variável 
= operador de atribuição 
<informação> qualquer dado a ser armazenado na memória do computador 
 
 
Exemplos: 
 
x = 20, onde X é uma variável numérica 
cidade = “Santos”, onde ‘cidade’ é uma variável alfanumérica 
 
No exemplo acima foram definidas duas variáveis (identificadores literais) as quais 
armazenam respectivamente as informações: numérica (20) e alfanumérica (“Santos”). 
 
Ao interpretar a instrução de atribuição, o computador automaticamente localiza em 
sua memória um espaço livre para armazenar a informação, passando ela a ser identificada 
pela variável a qual possui relacionado o endereço de memória da informação. 
 
2.4.1.1. Propriedades da instrução de atribuição 
 
a) A Instrução de Atribuição pode armazenar resultado de operações (expressões): 
 
Atribuição Efeito da atribuição realizada 
A = 3 atribuindo-se o valor 3 à variável A 
 
 
29 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
B = 5 atribuindo-se o valor 5 à variável B 
C = A * B atribuindo-se o resultado do produto de A por B (15) à variável C 
 
Ou seja, armazenamos no endereço de memória representado pela variável C, o 
resultado da operação. 
 
Para que a operação seja realizada de forma correta, o computador pesquisa o 
conteúdo das variáveis representadas pelos endereços A e B, efetua o cálculo (produto) 
das duas informações numéricas e em seguida armazena o resultado em um espaço 
disponível em memória representado pela variável (identificador literal) C. 
 
b) O conteúdo de uma variável pode ser alterado ao longo do processamento 
 
Atribuição Efeito da atribuição realizada 
A = 3 neste momento atribuímos à variável A o valor 3 
A = 7 o mesmo espaço de memória A passa a armazenar o valor 7 
A = A + 3 agora, a variável A recebe como atribuição, o seu valor inicial acrescido 
do valor 3, passando desta forma, a armazenar o valor 10 
 
Com esta propriedade, concluímos que existe a possibilidade de reutilização de 
um espaço de memória anteriormente utilizado. Salientamos ainda que o valor anterior 
é automaticamente perdido não podendo mais ser utilizado ou recuperado. 
 
c) A atribuição, representada pelo sinal de igual “=”, não tem o mesmo significado do 
mesmo sinal para a matemática. Exemplo: 
 
Matemática Computador 
X = 5 
X = X + 1 
Desenvolvendo esta expressão, podemos passar X 
para o primeiro membro, obtendo: 
 
X = X – 1 
X – X = 1 Ou 0 = 1 ( absurdo! ) 
X = 5 
X = X + 1 
Para o computador, esta instrução identifica apenas 
a reutilização do endereço de memória X. O 
conteúdo do endereço X (5) é somado ao valor 1 
resultando 6 que também armazenado no mesmo 
endereço X. 
 
 
 
 
 
30 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Determine em cada um dos exercícios abaixo o conteúdo da variável (endereço 
de memória) solicitado: 
 
1-) Endereço X 2-) Endereço Z 3-) Endereço H 4-) Endereço M 
A = 1 
B = 5 
C = A * B 
A = A + C 
X = B * C 
X = X + 3 
A = X – B 
X = X * X 
Z = 3 
B = Z * 2 
C = 4 
D = 3 
Z = B + C + D 
Z = Z * Z 
Z = C - Z 
L = 5 
D = 45 
H = D / L 
H = H + L + D 
J = 5 
M = 6 
F = D 
H = F 
AD = 45 
XJ = 21 
M = AD + XJ 
DD = 3 * M + XJ 
XJ = 12 
DD = XJ * M – DD 
M = 5 * M 
X = Z = H = M = 
 
A linguagem C# disponibiliza vários outros tipos de dados primitivos, ilustrado na 
tabela 2 e que teremos muito tempo para aprendê-los e utilizá-los. 
 
Tipo de dado Descrição Tamanho 
(em bits) 
Intervalo Exemplo 
int Números inteiros 32 -2147483648 até 
2147483647 
int idade; 
idade = 42; 
long Números inteiros 64 -9223372036854775808 
até 
9223372036854775807 
long x; 
x = 51L; 
float Números reais 32 ± 3,4 x 1038 float nota; 
nota = 5.5F; 
double Números reais 64 ± 1,7 x 10308 double x; 
x = 0.125; 
decimal Valores 
monetários 
128 28 números significativos decimal v; 
v = 0.42M; 
string Sequência de 
caracteres 
16 bits por 
caractere 
 string n; 
n = ”Maria”; 
char Único 
caractere 
16 0 a 32767 char let; 
let = ‘A’; 
 
 
31 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
bool Booleano 8 true ou false bool resp; 
resp = true; 
 
Tabela 2 – Tipos de dados primitivos da linguagem C#. 
 
Observações: 
 
i. Uma variável, em princípio deve ter um nome simples, que identifique seu 
conteúdo e que não seja igual a nenhuma das palavras reservadas já utilizadas 
pelo C#; 
ii. É importante observar algumas regras para nomeação dos identificadores 
(nome que se dá a uma variável): 
 
a) Iniciar com uma letra; 
b) Pode utilizar letras e números; 
c) Não utilizar caracteres especiais (símbolos gráficos); 
d) Não deixar espaço entre as letras; 
e) Não colocar letras ou palavras sublinhadas; 
f) Iniciar preferivelmente com letras minúsculas. 
 
2.5. Operadores e expressões aritméticas 
 
A linguagem C# suporta as 4 (quatro) operações aritméticas básicas, como 
multiplicação, divisão, adição e subtração, respectivamente com os operadores “*”, “/”, “+” 
e “-“. Quando em uma expressão aritmética, existir mais de um operador, valem as regras 
e propriedades da matemática para dar prioridade aos cálculos. 
 
Exemplos: 
x = 3 + 5 * 2 (o valor atribuído para “x” será 13) 
y = (3 + 5) * 2 (o valor atribuído para “y” será 16) 
 
 
 
 
 
 
 
32 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Você deve estar ciente também de que o tipo de resultado de uma expressão 
aritmética depende dos operandos utilizados. Veja o caso da operação de divisão: 
 
z = 5 / 2 (o valor atribuído para “z” será 2) 
w = 5.0 / 2.0 (o valor atribuído para “w” será 2.5) 
 
O C# também suporta um operador para retornar o resto de uma divisão entre inteiros. 
Este operador é chamado de módulo ou resto e é representado pelo caractere “%”. O 
resultado de x % y é o resto da divisão de x por y. 
 
Por exemplo: r = 9 % 2 (o valor atribuído para “r” será 1, pois 9 dividido por 2 é igual 
a 4 e resta 1). 
 
2.5.1. Incremento ou decremento de valores em variáveis 
 
A linguagem C# possui alguns recursos relevantes para incremento e decremento de 
valores em variáveis de memória. Para adicionar o valor 1 (um) a uma variável, poderia 
fazer: x = x + 1; para subtrair o valor 1 (um) a uma variável, poderia fazer: y = y - 1; 
 
Entretanto é pouco provável que um desenvolvedor experiente, que será seu caso, 
faça um código como este. Para adicionar uma unidade para uma variável utilizaremos a 
notação derivada da linguagem C, como a seguir: x++; 
 
Da mesma maneira para subtrair 1 de uma variável, você poderá utilizar o operador “-
-”. Por exemplo, para decrementar (subtrair) 1 da variável x, poderá ser codificado: x--; 
 
Os símbolos “++” e “—” são chamados de operadores (incremento ou decremento). 
Ambos são operadores unários, ou seja, não precisam estar necessariamente entre dois 
termos (variáveis, por exemplo). 
 
 
 
 
 
 
33 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
Prefixo e Sufixo: os operadores de incremento (++) e decremento (--) pode ser 
inseridos antes ou depois de uma variável. Se utilizarmos o operador depois da variável, 
chamamos de sufixo, mas se utilizarmos antes chamamos de prefixo. O detalhe é que o 
cálculo da variável também varia com esta regra. 
 
Variáveis Tipo de incremento/decremento 
contador++ incremento por sufixo (pós-incremento) 
++contador incremento por prefixo (pré-incremento) 
 
contador-- decremento por sufixo (pós-decremento) 
--contador decremento por prefixo (pré-decremento) 
 
 
A utilização da forma prefixo ou sufixo não faz diferença para a variável que estásendo 
incrementada ou decrementada. Por exemplo, se você codificar contador++ ou ++contador, 
a variável “contador” será incrementada em uma unidade, ou seja, aumentará em 1. A 
diferença está no resultado de uma expressão aritmética, pois um adiciona ou subtrai 
ANTES (prefixo) da expressão aritmética, já o outro (sufixo), adiciona ou subtrai depois da 
expressão. 
 
Veja os exemplos: 
 
x = 5; 
y = x++ * 2; 
Temos aqui x = 6 e y = 10. 
 
x = 5; 
y = ++x * 2; 
Temos aqui x = 6 e y = 12. 
 
Observação: Isoladamente, x++ tem o mesmo efeito que ++x. Veja o exemplo abaixo, 
codifique em seu Microsoft Visual C# e faça algumas alterações. Crie exemplos a partir 
deste. Mude os cálculos e valores. Analise os resultados obtidos... 
 
 
 
34 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Figura 18: Exemplo de aplicação em linguagem C# com operadores. 
 
 
 
 
Procure pesquisar algo mais a respeito da obra de George Boole, um 
matemático, filósofo britânico, criador da álgebra booleana, fundamental para 
o desenvolvimento da computação moderna. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
3. ENTRADA E SAÍDA DE DADOS 
 
O cálculo que o computador realiza requer, para ser útil, a entrada dos dados 
necessários para o processamento. O projeto de programação, normalmente existe porque 
se prevê a solução de algum problema computacional, isto é, temos que elaborar uma 
solução para um problema. Partimos também do suposto que temos dados que deverão 
ser processados e/ou calculados para gerar as informações de saída. Estes dados de 
entrada deverão ser inseridos no projeto em variáveis. 
 
Em muitas situações, a escolha do valor para uma variável é de competência do 
usuário e não do desenvolvedor, por isso, vamos estudar nesta aula, como atribuir valores 
para as variáveis em tempo de execução do programa, ou seja, o usuário irá escolher e 
digitar o valor que deverá ser armazenado em uma variável. 
 
Depois de processados os dados, vamos então informar os resultados obtidos, ou 
seja, a saída de dados. Os programas desenvolvidos até agora, têm valores atribuídos pelo 
desenvolvedor e não pelo usuário, isto significa que os programas irão gerar sempre o 
mesmo resultado. Com os recursos estudados nesta aula, teremos condições de solicitar 
valores ao usuário e processar estes dados, gerando resultados em função das entradas, 
ou seja, resultados diferentes. 
 
As operações de entrada permitem ler determinados valores e colocá-los em 
variáveis. Essa entrada (teclado, unidades de disco etc.) é conhecida como operação de 
leitura (read), após o processamento, os dados serão enviados para um dispositivo de 
saída (tela, impressora etc.), denominada escrita (write). 
 
 
 
 
 
 
 
 
 
 
 
36 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
3.1. Um programa simples 
 
O C# utiliza algumas notações que podem parecer estranhas para quem está 
iniciando, por isso, vamos fazer um programa que utiliza poucas variáveis e cálculos nada 
complexos. O enunciado do programa é o seguinte: Fazer um programa para calcular e 
exibir o dobro de um valor (real) qualquer que será escolhido pelo usuário. 
 
Solução: 
 
namespace Exemplo01 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 // Declaração de duas variáveis reais 
 double x, resp; 
 
 // Limpar a tela 
 Console.Clear(); 
 
 // Exibir a mensagem para o usuário digitar um valor 
 Console.Write("Digite um valor : "); 
 
 /* Aguardar a digitação de um valor 
 Converter a string digitada para o tipo double 
 Armazenar o valor escolhido na variável x 
 */ 
 x = double.Parse(Console.ReadLine()); 
 
 // Calcular o dobro de x e armazenar o resultado em resp 
 resp = 2 * x; 
 
 // Exibir o resultado 
 Console.WriteLine("Dobro do valor escolhido : {0}", resp); 
 
 
 
 // Aguardar uma tecla, antes de encerrar o programa 
 
 
37 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 Console.ReadKey(); 
 } 
 } 
} 
 
Analisando o código... 
 
a) Definimos duas variáveis reais (x e resp) do tipo double. Uma para receber o valor 
escolhido pelo usuário e outra para o cálculo do dobro do valor. 
b) A linha com o código “Console.Clear();” remove os caracteres antigos da tela, para 
que seu projeto possa utilizar uma tela limpa. 
c) Exibimos uma mensagem na tela para o usuário digitar um valor: 
Console.Write("Digite um valor : "); 
 
Um detalhe muito importante nos processamentos de entrada de dados para 
aplicações windows, é que as entradas são entendidas como sendo do tipo “string”, ou seja, 
uma sequência de caracteres. Para que estas entradas sejam interpretadas como valores 
numéricos nós deveremos nos utilizar de funções para conversão de tipos, como por 
exemplo: 
 
• X = int.Parse(Console.ReadLine()); 
• Y = float.Parse(Console.ReadLine()); 
• Z = double.Parse(Console.ReadLine()); 
• Nome = Console.ReadLine(); 
 
d) O código “x = double.Parse(Console.ReadLine());” aguarda a digitação de um valor 
que será convertido e armazenado na variável x. 
e) Veja o que acontece (figura 19) quando retiramos as funções de conversão para 
linhas desta natureza. Suponha o seguinte código: x = Console.ReadLine(); 
 
 
 
 
 
 
38 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Figura 19: Erro de compilação por falha de conversão de tipos de dados. 
 
f) Após a digitação, calculamos o dobro do valor digitado e armazenamos a resposta 
na variável resp, com o código: “resp = 2 * x;”. 
g) Com a variável “resp” em memória, podemos então enviar para o dispositivo de 
saída (tela) com o código Console.WriteLine("Dobro do valor escolhido : {0}", resp); 
 
Lembre-se que estamos utilizando o chamado “placeholder” (também chamado de 
parâmetro de formatação) para informar o local onde o conteúdo da variável será 
apresentado. 
 
É possível concatenar informações com a instrução “Write”, ou seja, utilizar a mesma 
instrução “Write” ou “WriteLine” para colocar mais de um conjunto de caracteres. É possível 
concatenar utilizando o sinal “+” para separar 2 (dois) conjuntos. Exemplo: 
 
// Concatena utilizando a sintaxe + 
Console.WriteLine("O valor é: " + 100); 
 
h) Apresentamos os resultados esperados, ou seja, já atendemos os requisitos do 
usuário. Vamos então inserir uma instrução “Console.ReadKey();” para aguardar 
que o usuário pressione uma tecla, antes do fechamento do aplicativo. Se você 
não entendeu, retire esta linha e execute o programa novamente. Viu, não dá 
tempo para visualizar o resultado. 
 
 
 
39 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
3.2. Entrada e saída de dados 
 
Basicamente as aplicações necessitam das entradas de dados, processam estes 
dados e geram as informações de saída. 
 
Admita o seguinte problema: calcular e exibir a idade em dias e a idade em horas de 
uma pessoa qualquer, a partir da sua idade em anos, que será fornecida via teclado. 
 
Para resolver este problema, você deverá criar variáveis para armazenar a idade em 
anos que o usuário irá digitar e depois calcular os demais valores solicitados. Logicamente, 
também seria um problema muito simples de resolver. 
 
Exemplo: 
 
namespace Exemplo02 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 int anos, dias, horas; 
 
 Console.Clear(); 
 Console.Write("Idade em anos: "); 
 anos = int.Parse(Console.ReadLine()); 
 
 dias = anos * 365; 
 horas = dias * 24; 
 Console.WriteLine("{0} anos de vida", anos); 
 Console.WriteLine("Aproximadamente {0} dias", dias); 
 Console.WriteLine("{0} horas! ", horas); 
 Console.ReadKey(); 
 } 
 } 
} 
 
 
 
 
40 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Para um treinamento, faça agora um programa para calcular e exibir a média 
aritmética de dois valores que serão digitados: M = (p1 + p2) / 2. 
 
3.2.1. Instrução de comentário no programa 
 
O objetivo da instrução de “comentário” é permitir que o desenvolvedor escreva 
comentários durante a programação. Na verdade, esta instrução não tem nenhuma função 
para a linguagem de programação, o que se está fazendo quando se coloca um comando 
comentário é equivalente a falar ao compilador que a linha que inicia com o comando 
comentário deve ser desconsiderada. 
 
Em resumo, os comentários só servem para dar ao desenvolvedor a oportunidade 
de escrever informações no programa que lhe serão úteis como lembretes ou explicações 
de decisões que ele tomou durante a elaboração do programa. Um bom programador deve 
colocar o máximo possível de comentários, de maneira que estes possam lhe auxiliar 
principalmente no futuro, quando ele for fazer alterações ou manutenções no programa. 
 
Existem no C#, duas sintaxes para o comando comentário: 
 
a) Para uma única linha de comentário: basta iniciar a linha de comentário com duas 
barras normais. Não é necessário marcar o final da linha. 
 
// ........Comentário 
 
b) Para comentários com mais de uma linha: deve-se iniciar a linha de comentário 
com uma barra normal seguida de asterisco e encerrar o comentário com 
asterisco seguido de uma barra normal. 
 
/* ...............Comentário ................ */ 
 
 
 
 
 
 
41 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
Exemplo: 
 
namespace Ex01 
{ 
 class Comentario 
 { 
 static void Main(string[] args) 
 { 
 // Esta é uma linha de comentário que será desprezada pelo comando 
 /* Caso se deseje escrever comentários 
 com mais de uma linha basta iniciar 
 com barra asterisco e fechar com */ 
 } 
 } 
} 
 
 
3.2.2. Delimitando a largura de dados para a instrução “Write” 
 
Caso seja utilizada a instrução “Write” com a sintaxe de “parâmetros de formatação”, 
é possível delimitar o espaço onde uma informação será colocada. Para tanto, basta colocar 
após o “parâmetro de formatação”, uma vírgula e em seguida um número inteiro 
representando o espaço que será disponibilizado para a apresentação da informação. Caso 
seja colocado um número positivo o alinhamento será justificado à direita, caso seja 
colocado um número negativo o alinhamento será justificado à esquerda. Exemplo: 
 
// Concatena utilizando parametros de formatação e delimitadores 
Console.WriteLine("O primeiro valor é {0,10}, e o segundo é {1,10}", 120, 130); 
Console.WriteLine("O primeiro valor é {0,-10}, e o segundo é {1,-10}", 120, 130); 
 
 
 
 
 
 
 
 
 
 
 
42 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Figura 20: Resultado do processamento do programa com delimitação de espaço 
para apresentação dos dados. 
 
3.2.3. Determinando o número de casas decimais para a instrução “Write” 
 
Caso seja utilizada a instrução “Write” com a sintaxe de “parâmetros de formatação”, 
é possível determinar o número de casas decimais que um número será informado. Para 
tanto, basta colocar após o “parâmetro de formatação” ou após a indicação de largura 
disponibilizada dois pontos e em seguida a letra F e o número de casas desejadas. 
Exemplo: 
 
// Concatena utilizando parametros de formatação e delimitadores e 
// duas ou três casas decimais 
Console.WriteLine("O primeiro valor é {0,10:F2}, e o segundo é {1,10:F2}", 120, 130); 
Console.WriteLine("O primeiro valor é {0,-10:F3}, e o segundo é {1,-10:F3}", 120, 130); 
 
 
 
 
 
 
 
 
 
 
43 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Figura 21: Resultado do processamento do programa com determinação do número 
de casas decimais para apresentação dos dados. 
 
3.3. Lista de exercícios 
 
1) Entrar via teclado com a base e a altura de um retângulo, calcular e exibir sua 
área. 
2) Calcular e exibir a área de um quadrado, a partir do valor de sua aresta que 
será digitado. 
3) Calcular e exibir a área de um quadrado a partir do valor de sua diagonal que 
será digitado. 
4) A partir dos valores da base e altura de um triângulo, calcular e exibir sua 
área. 
5) Calcular e exibir o volume de uma esfera a partir do valor de seu diâmetro que 
será digitado. 
6) Calcular e exibir a média aritmética de quatro valores quaisquer que serão 
digitados. 
7) Calcular e exibir a média geométrica de dois valores quaisquer que serão 
digitados. 
8) Sabendo que uma milha marítima equivale a um mil, oitocentos e cinquenta e 
dois metros e que um quilômetro possui mil metros, fazer um programa para 
converter milhas marítimas em quilômetros. 
 
 
44 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
9) Calcular e exibir a tensão de um determinado circuito eletrônico a partir dos 
valores da resistência e corrente elétrica que serão digitados. Utilize a lei de 
Ohm. 
10) Entrar via teclado com o valor de uma temperatura em graus Celsius, calcular 
e exibir sua temperatura equivalente em Fahrenheit. 
11) A partir do diâmetro de um círculo que será digitado, calcular e exibir sua área. 
12) Calcular e exibir o volume de um cone a partir dos valores da altura e do raio 
da base que serão digitados. 
13) Calcular e exibir a velocidade final (em km/h) de um automóvel, a partir dos 
valores da velocidade inicial (em m/s), da aceleração (m/s²) e do tempo de 
percurso (em s) que serão digitados. 
14) Calcular e exibir o volume livre de um ambiente que contém uma esfera de 
raio “r” inscrita em um cubo perfeito de aresta “a”. Os valores de “r“ e “a” serão 
digitados. 
15) Entrar via teclado com o valor da cotação do dólar e uma certa quantidade de 
dólares. Calcular e exibir o valor correspondente em Reais (R$). 
16) Entrar via teclado com o valor de um ângulo em graus, calcular e exibir as 
seguintes funções trigonométricas: seno, coseno, tangente e secante deste 
ângulo. Lembre-se que uma função trigonométrica trabalha em radianos. 
17) Entrar via teclado com o valor de cinco produtos. Após as entradas, digitar um 
valor referente ao pagamento da somatória destes valores. Calcular e exibir o 
troco que deverá ser devolvido. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
4. ESTRUTURAS DE CONTROLE DE DECISÃO 
 
4.1. Comparações 
 
O computador tem a habilidade de efetuar comparações e em virtude desta 
comparação, se torna possível a este, a tomada de decisões. Tais comparações ocorrem 
através da análise de uma expressão, a qual, define o caminho correto a ser seguido pelo 
fluxo do programa. Estas expressões são apresentadas na forma de comparações entre 
informações, de tal forma que as mesmas possam ser analisadas pela máquina, retornando 
um valor lógico. Tais comparações podem ser divididas em: 
 
a) Comparações Simples 
b) Comparações Múltiplas 
 
Veremos a seguir as características de cada uma destas comparações, bem como 
analisaremos os conectores lógicos utilizados para criação das expressões. 
 
4.1.1. Comparações simples 
 
Quando definimos o computador, dissemos que ele tem a habilidade de comparar 
informações. Esta comparaçãoé realizada eletronicamente e como resultado dessa 
comparação surge uma informação interna da máquina chamada variável lógica, que pode 
assumir apenas dois valores: verdadeiro ou falso (true ou false). A variável lógica assumirá 
um valor verdadeiro (V ou 1) se for verdadeira a comparação efetuada e será falsa (F ou 
0) em caso contrário. Como internamente no computador temos apenas zeros e uns, o V é 
equivalente a um e o F equivale a zero. 
 
O resultado lógico de uma comparação definirá o caminho a ser seguido pelo 
programa. No quadro abaixo, mostramos as possíveis comparações simples que podem 
ser efetuadas entre os dados A e B: 
 
 
 
 
 
46 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Comparação O computador é capaz de verificar se: 
A = B os números são iguais (em C# usamos ==) 
A <> B são diferentes (nas linguagens C# em Java, usamos != ) 
A > B o primeiro é maior que o segundo 
A < B o primeiro é menor que o segundo 
A >= B o primeiro é maior ou igual ao segundo 
A <= B o primeiro é menor ou igual ao segundo 
 
Nota: Os elementos A e B nas expressões no quadro acima, podem ser variáveis 
numéricas, alfanuméricas ou ainda literais numéricos ou alfanuméricos. 
 
Exemplos: Considere as variáveis A = 10, B = 5, C = “Programa”; 
 
Comparação efetuada pelo 
computador 
Variável lógica interna gerada 
A > B V ou 1 
5 > A F ou 0 
C > “Roberto” F ou 0 
A >= A V ou 1 
6 >= B V ou 1 
6 <> 9 V ou 1 
C < “Zulmira” V ou 1 
A <> B V ou 1 
C > “Alberto” V ou 1 
“Programa” <> C F ou 0 
“6” < “5” F ou 0 
“63” > “120” V ou 1 
12 = 13 F ou 0 
 
Repare que não podemos comparar variáveis literais com variáveis ou literais 
alfanuméricas e vice e versa. 
 
 
 
 
 
 
 
47 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
4.1.2. Comparações múltiplas 
 
A comparação pode também ser constituída pela associação de comparações 
simples, associação esta chamada de comparação múltipla. Esta associação é feita 
utilizando os chamados operadores lógicos AND (E) e OR (OU). Para entendermos esta 
comparação múltipla, consideremos duas condições simples C1 e C2. 
 
4.1.2.1. O Operador lógico “AND” 
 
Regra: C1 AND C2 será V se C1 e C2 forem V. 
Exemplos: 
 
Comparação Múltipla Variável lógica interna gerada 
5 > 3 AND 3 = 3 V – pois ambas são V 
7 = 7 AND 3 = 5 F – pois a segunda é F 
4 > 10 AND 6 <= 12 F – pois a primeira é F 
12 <> 12 AND 6 > 10 F – pois ambas são F 
 
Resumo: 
 
V AND V V 
V AND F F 
F AND V F 
F AND F F 
 
 
 
 
 
 
 
 
 
 
 
 
48 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
4.1.2.2. O Operador lógico “OR” 
 
Regra: C1 OR C2 será V se pelo menos uma das condições simples for V. 
Exemplos: 
 
Comparação Múltipla Variável lógica interna gerada 
5 > 3 OR 3 = 3 V – pois ambas são V 
7 = 7 OR 3 >= 5 V – pois a primeira é V 
4 > 10 OR 6 <= 12 V – pois a segunda é V 
12 <> 12 OR 6 > 10 F – pois ambas são F 
 
Resumo: 
 
V OR V V 
V OR F V 
F OR V V 
F OR F F 
 
As informações comparadas podem conter operações. Neste caso o computador 
efetua inicialmente a operação e posteriormente a comparação, conforme exemplo abaixo: 
 
( 3 * 4 ) > 10 
 
O computador efetua a operação obtendo 12 e este valor é comparado com 10, 
resultando a expressão em V. Podemos ter comparações múltiplas ainda mais complexas. 
Isto é feito utilizando-se de parênteses para indicar a prioridade de análise, conforme o 
exemplo abaixo: 
 
( 3 > 4 AND 5 < > 6 ) OR 2 < 3 
 
 
 
 
 
 
 
 
49 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
4.1.3. Comparações com variáveis alfanuméricas 
 
A comparação pode também ser constituída pela associação de comparações 
envolvendo, especificamente, as variáveis alfanuméricas. Vejamos os exemplos abaixo: 
 
Comparação Variável lógica interna gerada 
“SANTOS“ = “SANTOS” V ou 1 
“ABEL” < “BENEDITO” V ou 1 
“JULIA” > “MARCOS” F ou 0 
“LUIZ” < “ LUIS” F ou 0 
“MARCIA” >= “MARCIA” V ou 1 
“AAA” <= “AAAB” V ou 1 
“SISTEMA” <> “SISTEMA” F ou 0 
“AAAAAA” = “aaaaaa” F ou 0 
“MARIA “ = “MARIA” F ou 0 
 
Notas: 
 
a) Caracteres maiúsculos são menores que caracteres minúsculos. 
b) Números são menores que letras. 
c) Espaços são menores que qualquer caractere que possa ser impresso. 
d) Caracteres acentuados e o ç são maiores que as letras não acentuadas (Mas 
obedecem a ordem entre si “á” é menor que “é” e “Á” é menor que “É”) 
 
4.1.4. Exercícios de reforço 
 
Complete a tabela abaixo com V ou F: 
 
01 5 <> 6 AND 5 <> 4 
02 5 = 5 OR 6 < 6 
03 5 <= 10 AND 5 <> 7 
04 12 >= 12 OR 12 < 10 
05 33 <> 5 OR 10 > 4 
06 6 <= 10 AND 8 = 8 
07 12 < 10 AND 56 <> 65 
08 34 < 30 OR 15 <= 5 
 
 
50 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
09 8 >= 10 AND 6 >= 7 
10 45 < 23 AND 8 <= 5 
 
11 (8 >= 10) AND (5 <> 7) 
12 (34 < 30) OR (3 <> 3) 
13 (5 = 5) XOR (10 > 4) 
14 (6 <= 10 OR 45 < 23) AND (8 = 8) 
15 (33 <> 5) AND (56 <> 65 OR 2 = 2) 
16 (52 <= 67 AND 23 > 20) OR (15 <= 5) 
17 (12 >= 12 AND 6 >= 7) AND (3 = 3) 
18 (6 <= 10 OR 29 <> 32) AND (8 <= 5) 
19 (12 < 10) AND (5 <> 4 OR 5 <> 6) 
20 (5 <> 6 AND 3 > 4) OR (6 < 6) 
 
21 (8 >= 10 AND 2 >= 2) AND (5 <> 7) 
22 (34 < 30) XOR (12 < 10 OR 3 <> 3) 
23 (6 <= 10 OR 45 < 23) AND (8 = 8) 
24 (5 = 5) XOR (10 > 4 AND 4 >= 3) 
25 (33 <> 5) AND (56 <> 65 XOR 2 = 2) 
26 (52 <= 67 AND 23 > 20) OR (15 <= 5) 
27 (12 >= 12 AND 6>= 7) AND (3 = 3) 
28 (5 <= 10 OR 29 <> 32) AND (8 <= 5) 
29 (4 < 1) AND (5 <> 4 OR 5 <> 6) 
30 (‘123’ > ‘87’) OR (‘012’ >= ‘6’) 
 
31 (‘Maria’ <= ‘Mario’ AND ‘É’ = ‘E’) 
32 (34 < 30) AND (12 < 10 OR X <> Y) 
33 ((6 <= 10) OR (45 < 23)) AND (‘A’ = ‘a’) 
34 (5 =>5) OR (10 > 4 OR 4 >= 3) OR (X > Y) 
35 (33 <> 5) OR (56 <> 65 AND 2 = 2) 
36 ((‘A’ < ‘B’) OR (‘X’ > ‘x’)) AND (15 <= 15) 
37 (12 <= 12 OR 6>= 7) AND (3 <= 5) 
38 (4 >= 15 AND 29 <> 30) OR (8 <= 5) 
39 (4 > 1) OR (5 <> A) OR (5 <> B) OR (A=B) 
40 (15 <= 17 AND 1 > 2) XOR (5 <= 5) 
 
 
 
 
 
 
51 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
4.2. Decisão lógica 
 
Normalmente as instruções em um programa são executadas uma após a outra, na 
ordem em que aparecem no programa. Isso é chamado de execução sequencial ou 
execução em linha. 
 
Muitas vezes em processamento de dados, devemos executar um determinado bloco 
de instruções em função de uma condicional, isto é, se determinada condição for satisfeita, 
o bloco será executado, caso contrário, não será. A decisão lógica possui apenas duas 
respostas possíveis, o verdadeiro (true) ou o falso (false), e nosso problema consiste em 
analisar quais instruções serão processadas em cada caso. 
 
Parece simples, mas realmente no início qualquer um de nós poderá sentir as 
dificuldades comuns de qualquer aprendizado. Veja a figura 22 abaixo para ilustrar melhor 
a decisão lógica. 
 
Figura 22: Representação gráfica (fluxograma) de uma decisão lógica. 
 
Neste caso, o “blocoA” será processado somente se a condição for verdadeira, caso 
contrário, o programa prossegue sua execução linear, ignorando o “blocoA”. 
 
4.3. Estrutura de controle de decisão “IF” 
 
Uma estrutura de decisão escolhe uma das duas opções possíveis de ações 
alternativas. Por exemplo, admita que para passar de ano na disciplina, o aluno necessita 
de média 7,0. Vamos gerar um pequeno fluxograma (figura 23) com esta condição e exibir 
a mensagem “Aluno Aprovado”, esperamos inclusive, que seja o seu caso. 
 
 
Condição 
BlocoA 
V F 
 
 
52 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 
Figura 23: Representação gráfica (fluxograma) da solução. 
 
Se a condição for verdadeira, então a mensagem éexibida e a próxima instrução é 
executada na ordem. Se a condição for falsa, a instrução de exibição é ignorada, e a 
próxima instrução é executada. 
 
Vejamos este fluxo com a programação C#. 
 
static void Main(string[] args) 
{ 
 float p1, p2, media; 
 
 Console.Clear(); 
 Console.Write("Valor da P1 : "); 
 p1 = float.Parse(Console.ReadLine()); 
 
 Console.Write("Valor da P2 : "); 
 p2 = float.Parse(Console.ReadLine()); 
 media = (p1 + p2) / 2; 
 
media > 
 = 7 . 0 
V F 
Aluno 
Aprovado 
Início 
P 1 
media = 
 ( P 1 + P 2 ) / 2 
P 2 
Fim 
Media 
 
 
53 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
 Console.WriteLine("Media do aluno : {0}", media); 
 
 if (media >= 7.0) 
 { 
 Console.WriteLine("Aluno Aprovado"); 
 } 
 
 Console.ReadKey(); 
} 
 
Note que o código em C# é muito parecido, logicamente, com o fluxograma, 
demonstrando como o fluxograma pode ser útil como ferramenta de programação. A 
mensagem “Aluno Aprovado” será apresentada apenas se o aluno possuir média maior ou 
igual a 7 (sete). 
 
4.4. Operadores lógicos 
 
O C# utiliza alguns símbolos para representar os chamados operadores para 
comparação entre os argumentos, ou simplesmente, os operadores lógicos. São os 
seguintes (quadro 1): 
 
Operador Significado 
> Maior que 
< Menor que 
>= Maior ou igual que 
<= Menor ou igual que 
== Igual a 
!= Não igual a (diferente de) 
Quadro 1: Listagem de operadores lógicos. 
 
 
 
 
 
 
 
 
 
54 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
4.5. Estrutura de decisão “IF/ELSE” 
 
A estrutura de decisão “if” executa uma ação indicada apenas quando a condição é 
avaliada como sendo verdadeira, caso contrário, o programa prossegue linearmente, como 
já vimos. A estrutura de decisão “if/else” permite ao programador especificar blocos de 
instruções que serão executadas se a condição for verdadeira e, também, blocos de 
instruções que serão executadas se a condição for falsa. Graficamente (figura 24), temos 
a seguinte situação: 
 
 
Figura 24: Representação gráfica (fluxograma) da decisão lógica “if/else”. 
 
Neste caso, o “BlocoA” será executado se a condição for verdadeira, mas se a 
condição for falsa, então o “BlocoB” será processado, para então o programa prosseguir 
sequencialmente com as próximas instruções. 
 
Suponha então uma alteração em nosso programa exemplo, no sentido de exibir a 
mensagem “Aluno Aprovado”, se a média for maior ou igual a sete, mas exibir “Aluno 
Reprovado”, se a média for menor do que 7 (sete). 
 
O código em C# ficaria assim: 
 
if (media >= 7.0) 
{ 
Console.WriteLine("Aluno Aprovado"); 
} 
else 
 
Condição 
BlocoA BlocoB 
V F 
 
 
 
55 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
{ 
Console.WriteLine("Aluno Reprovado"); 
} 
 
Uma importante observação é que se um determinado bloco contiver mais de uma 
instrução, será necessário inserir os caracteres chaves “{ }” para representar o início e o 
final do bloco, mas lembre-se, isso é obrigatório apenas para mais de uma instrução no 
bloco. Por exemplo, o código acima poderia ser codificado da seguinte maneira: 
 
 
if (media >= 7.0) 
{ 
Console.WriteLine("Aluno Aprovado"); 
Console.WriteLine(“Parabéns!”); 
} 
else 
{ 
Console.WriteLine("Aluno Reprovado"); 
Console.WriteLine(“Ano que vem, recupera!”); 
} 
 
Como um desafio tente resolver o exercício abaixo: 
 
O usuário deverá digitar, via teclado, os coeficientes a, b e c de uma equação do 2º 
grau (ax2 + bx + c) e o programa deverá calcular e exibir suas raízes reais. Criamos duas 
condições para exibir estas raízes: 
 
• Se o valor “a” for igual a ZERO, exibir a mensagem “Não forma equação do 2º 
grau”. 
• Se o valor “∆” for negativo, exibir a mensagem “Não existem raízes reais”. 
 
Equação de 2º grau: 
 
∆= 𝑏2 − 4𝑎𝑐 
 
𝑥 =
−𝑏 ± √∆
2𝑎
 
 
 
56 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 
4.6. Estrutura de decisão “IF” em cascata 
 
As instruções “if” pode ser aninhadas (colocado ou localizado em linha reta; posto em 
fila) dentro de outras instruções “if”. Dessa maneira, você pode encadear uma sequência 
de expressões booleanas (lógicas), que são testadas uma após a outra, até que umas delas 
seja avaliada como verdadeira. 
 
No exercício para calcular as raízes da equação, repare que o delta será comparado 
somente se o primeiro teste for falso. 
 
As estruturas “if/else” aninhadas podem testar múltiplos casos, colocando-as dentro 
de outras estruturas if/else. 
 
No exemplo abaixo, se o valor da variável “dia” for 0 (zero), o primeiro teste será 
avaliado como verdadeiro e “Domingo” será atribuído à variável “diaNome”. Se o valor de 
“dia” não for zero, o primeiro teste será falso e o controle passará para a cláusula else, que 
executará a segunda instrução “if” que irá comparar a variável dia com o valor 1 (um). A 
segunda instrução “if” só é avaliada se o primeiro teste for falso. Da mesma maneira, a 
terceira instrução “if” só será avaliada se o primeiro e o segundo testes forem falsos. 
 
namespace DiaSemana 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 int dia; string diaNome; Console.Clear(); 
 Console.Write("Digite um valor de 0 a 6 : "); 
 dia = int.Parse(Console.ReadLine()); 
 
 if (dia == 0) 
 { 
 diaNome = "Domingo"; 
 } 
 else 
 { 
 
 
57 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 if (dia == 1) 
 { 
 diaNome = "Segunda-feira"; 
 } 
 else 
 { 
 if (dia == 2) 
 { 
 diaNome = "Terça-feira"; 
 } 
 else 
 { 
 if (dia == 3) 
 { 
 diaNome = "Quarta-feira"; 
 } 
 else 
 { 
 if (dia == 4) 
 { 
 diaNome = "Quinta-feira"; 
 } 
 else 
 { 
 if (dia == 5) 
 { 
 diaNome = "Sexta-feira"; 
 } 
 else 
 { 
 if (dia == 6) 
 { 
 diaNome = "Sábado"; 
 } 
 else 
 { 
 diaNome = "Não existe!"; 
 } 
 } 
 } 
 } 
 } 
 
 
58 Programação Orientada a Objetos 
Universidade Santa Cecília - Educação a Distância 
 } 
 } 
 Console.WriteLine("Dia da Semana : {0}", diaNome); 
 Console.ReadKey(); 
 } 
 
4.7. Operadores lógicos condicionais 
 
O C# também oferece operadores booleanos: o operador lógico “and”, que é 
representado pelo símbolo “&&” e o operador lógico “or”, que é representado pelo símbolo 
“||”. Coletivamente são conhecidos como

Outros materiais