Você está na página 1de 17

Universidade de Mogi das Cruzes

Computao / Informtica Bsica


Elaborada por Profa. MSc. Viviane Guimares Ribeiro

Mogi das Cruzes, SP 2012

Computao/Informtica Bsica

Apresentao da Disciplina
Nome da Disciplina: Computao/Informtica Bsica Professora Joelma da Silveira E-mail: joelma@umc.br

Objetivo da Disciplina
Capacitar os alunos fornecendo as habilidades, os conhecimentos e as competncias em informtica necessrias para que possa utilizar o computador como ferramenta na vida acadmica e profissional. O aluno dever adquirir conhecimento em conceitos bsicos de programao estruturada utilizando a linguagem C.

Tpicos do Semestre
1) Introduo Lgica 2) Algoritmo e Programao Estruturada: Conceitos 3) Representao de Algoritmos a. Descrio Narrativa b. Fluxograma c. Pseudocdigo / Portugus Estruturado / Portugol 4) Estrutura Seqencial 5) Estruturas de Deciso a. Simples b. Composta c. Deciso Encadeada d. Mltipla Escolha 6) Estrutura de Repetio a. Com Varivel de Controle b. Com Teste no Incio e no Fim 7) Linguagem C a. Conceitos b. Tipos de Dados, Variveis, Operadores c. Comandos de Entrada e Sada d. Comando de Deciso if e. Comando de Deciso switch f. Comando de Repetio for g. Comando de Repetio while h. Comando de Repetio - do.. while

Metodologia
Aulas expositivas e prticas em laboratrio.

Avaliao
M1 = P1 (70%) + AP (20%) + Listas (10%) ND = P2 (70%) + AP (20%) + Listas (10%) M2 = ND (70%) + PI (30%) Mdia Semestral = (M1 + M2 * 2) / 3 Onde: P1 e P2 so provas individuais agendadas.

Computao/Informtica Bsica

AP so as atividades prticas realizadas em sala (sem a necessidade de agendamento prvio) ou em casa. PI prova interdisciplinar agendada pela gesto do curso. Listas exerccios individuais realizados em casa entregues em datas prestabelecidas. OBS1: No ser aplicada prova substitutiva. OBS2: A disciplina tem carter acumulativo, portanto em todas as provas ser cobrado todo o contedo estudado at o momento no semestre.

Bibliografia Bsica
SALIBA, Walter Luiz Caram, Tcnicas de Programao: Uma abordagem estruturada, Makron Books, So Paulo, 1993-2005. GUIMARES, ngelo de Moura; LAGES, Newton Alberto de Castilho, Algoritmos e Estruturas de Dados, Livros Tcnicos e Cientficos, Rio de Janeiro, 1994. PEREIRA, Silvio do Lago, Algoritmos e Lgica de Programao em C: uma abordagem didtica, Editora rica, So Paulo, 2010. BOENTE, Alfredo, Aprendendo a programar em linguagem C do bsico ao avanado, Brasport, Rio de Janeiro, 2003. SCHILDT, Herbert, C completo e total, Pearson Makron Books, So Paulo, 2004

Bibliografia Complementar
FARRER, H. et all, Algoritmos Estruturados, Livros Tcnicos e Cientficos, Rio de Janeiro, 1999. MANZANO, Jos Augusto Navarro Garcia; OLIVEIRA, Jayr Figueiredo de, Algoritmos: Lgica para desenvolvimento de programao de computadores, Editora rica, So Paulo, 2004. HICKSON, Rosngela, Aprenda a programar em C, C++ e C#, Editora Campus, Rio de Janeiro, 2002. SCHILDT, Herbert, Linguagem C: Guia do usurio, McGraw-Hill, So Paulo, 1986. PUGA, Sandra; RISSETTI, Gerson, Lgica de Programao e Estrutura de Dados, Pearson Prentice Hall, So Paulo, 2003.

Computao/Informtica Bsica

1. Introduo Lgica
A palavra lgica originria do grego logos, que significa linguagem racional. De acordo com o dicionrio Michaelis, lgica a anlise das formas e leis do pensamento, mas no se preocupa com a produo do pensamento, quer dizer, no se preocupa com o contedo do pensamento, mas sim com a forma deste, isto , com a maneira pela qual um pensamento ou uma ideia so organizados e apresentados, possibilitando que cheguemos a uma concluso por meio do encadeamento dos argumentos. Os argumentos podem ser dedutivos ou indutivos. Os argumentos indutivos so aqueles com que, a partir dos dados, se chega a uma resposta por meio da analogia, ou seja, pela comparao com algo conhecido, porm esse tipo de raciocnio no oferece certeza de que a resposta ser de fato verdadeira. necessrio conhecer os fatos ou as situaes para que se possa fazer a comparao. Por exemplo: ontem no havia nuvens no cu e no choveu. Hoje no h nuvens no cu, portanto no vai chover. J os argumentos dedutivos so aqueles cuja concluso obtida como conseqncia das premissas, isto , por meio da anlise das situaes ou fatos, pode-se obter a resposta. Trabalha-se com a forma das sentenas, sem que haja a necessidade do conhecimento prvio das situaes ou fatos. Por exemplo: Joana uma mulher. As mulheres so seres humanos. Logo, Joana um ser humano. Desde os tempos primitivos o homem utiliza-se do raciocnio lgico para a realizao de suas atividades. Isso comprovado pelo fato de ele ter estabelecido sequncias adequadas para a realizao de suas tarefas com sucesso. Podemos citar alguns exemplos relacionados s suas atividades do dia a dia: Uma pessoa adulta, para tomar banho, primeiro tira a roupa para no molh-la e tambm para estabelecer contato direto entre sua pele e a gua. Uma criana, desde pequena, aprende que, para chupar uma bala, preciso tir-la da embalagem. A lgica aplicada a diversas cincias. Na informtica e na computao, aplica-se a todas as suas reas, para a construo e funcionamento do hardware e do software. Por exemplo, na construo de um circuito integrado para o teclado, trabalha-se com o conceito de portas lgicas para a verificao da passagem ou no de pulsos eltricos, a fim de que seja estabelecida uma comunicao entre os componentes. J na construo de software, por meio do raciocnio lgico que o homem constri algoritmos que podem ser transformados em programas de computador capazes de solucionar problemas cada vez mais complexos. Como foi visto anteriormente, a lgica preocupa-se com a forma da construo de pensamento. Isto permite que se trabalhe com variveis para que se possa aplicar o mesmo raciocnio a diferentes problemas. Por exemplo: Joo cientista. Todo cientista estudioso. Logo, Joo estudioso. Substituindo as palavras Joo e estudioso por A e B: A cientista. Todo cientista B. Logo, A B. O raciocnio lgico nos conduz a uma resposta que pode ser verdadeiro ou falso. Na construo de algoritmos para a soluo de problemas computacionais, trabalha-se com esse tipo de raciocnio. As informaes a serem analisadas so representadas por variveis que posteriormente recebero valores. As variveis, por sua vez, representaro as premissas. Por exemplo: Dados dois valores quaisquer, deseja-se saber qual o maior. Os dois valores so representados pelas variveis A e B. Analisa-se o problema a fim de averiguar qual a melhor maneira de descobrir a soluo, ento se monta a sequncia para

Computao/Informtica Bsica

que seja verificada a questo. Para descobrir a soluo, pode-se partir de problemas similares j resolvidos e, por analogia, aplicar o mesmo mtodo ao problema atual, ou podem-se estudar formas de resolv-lo buscando dados com especialistas no assunto em questo. Neste caso, vamos substituir as variveis por valores conhecidos, apenas como modelo para facilitar o entendimento do raciocnio aplicado: A ser substituda por 7 e B, por 19. Para que seja verificado o maior valor, deve-se fazer uma comparao, por exemplo: 7 maior que 19? Logo tem-se a resposta falso. Ento, pode-se concluir que 19 o maior nmero entre os dois. Quando os valores so desconhecidos, na representao para a soluo do problema, trabalha-se apenas com as variveis: A maior que B? Se a resposta verdadeiro, A o maior valor. Se a resposta falso, B o maior valor.

Exerccios
1. Dadas as premissas a seguir, verifique quais so as sentenas que representam a concluso correta: I- Cavalos so animais. Animais possuem patas, Logo: a. Cavalos possuem patas. b. Todos os animais so cavalos. c. Os cavalos possuem quatro patas. II- Retngulos so figuras que tm ngulos. Temos uma figura sem nenhum ngulo. Logo: a. Essa figura pode ser um circulo. b. No possvel tirar concluses. c. Essa figura no um retngulo. III- Se o verde forte, o vermelho suave. Se o amarelo suave, o azul mdio. Mas ou o verde forte ou o amarelo suave. Forte, suave e mdio so as nicas tonalidades possveis. Logo: a. O azul mdio. b. Ou o vermelho suave ou o azul mdio. c. O amarelo e o vermelho so suaves. 2. Analise e descreva uma maneira de mover os discos do pino A para o pino C, usando o pino B como espao auxiliar, de modo que: a. apenas um disco seja movido de cada vez; b. nenhum disco seja posicionado sobre outro disco de dimetro menor; c. os discos sejam imediatamente transferidos de um pino para o outro.

Computao/Informtica Bsica

2. Algoritmos
Um algoritmo uma sequncia lgica de instrues que devem ser seguidas para a resoluo de um problema ou para a execuo de uma tarefa. Os algoritmos so amplamente utilizados nas disciplinas ligadas rea de cincias exatas. No dia a dia, as pessoas utilizam-se de algoritmos de maneira intuitiva, sem que haja a necessidade de planejar previamente a sequncia de passos para a resoluo das tarefas quotidianas. Dentre os inmeros exemplos existentes, podemos citar: 1. Quando uma pessoa prepara um bolo, segue uma receita, que nada mais do que um algoritmo em que casa instruo um passo a ser seguido para que o prato fique pronto com sucesso: Bata 4 claras em neve; Adicione 2 xcaras de acar; Adicione 2 xcaras de farinha de trigo, 4 gemas, 1 colher de fermento e 2 colheres de chocolate; Bata por 3 minutos; Unte uma assadeira com margarina e farinha de trigo; Coloque o bolo para assar durante 20 minutos em temperatura mdia. 2. Um motorista que necessita efetuar a troca de um pneu furado segue uma rotina para realizar esta tarefa: Verifica qual pneu est furado; Posiciona o macaco para levantar o carro; Pega o estepe; Solta os parafusos; Substitui o pneu furado; Recoloca os parafusos; Desce o carro; Guarda o pneu furado e as ferramentas utilizadas. Porm, no contexto da cincia da computao, estamos interessados em definir algoritmos que sero executados por computadores e no por pessoas. Assim, ao definir um algoritmo computacional, precisamos nos restringir a um conjunto bastante limitado de passos (ou operaes) que um computador capaz de executar. Alm disso, precisamos de uma notao que permita descrever precisamente estes passos, sem nenhuma ambiguidade. Ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em trs fases fundamentais: entrada de dados, processamento e sada de dados.

Entrada

Processamento

Sada

Imagine o seguinte problema: Calcular a mdia final de um aluno. Pelas provas os alunos recebero 2 notas: N1, N2. Onde: Mdia Final = (nota1 + nota2 * 2 )/3 a) Quais so os dados de entrada? R: Os dados de entrada so nota1 e nota2. b) Qual ser o processamento a ser utilizado? R: O procedimento ser multiplicar a nota2 por dois, somar o resultado com o valor da nota1 e dividir o resultado da soma por 3. c) Quais sero os dados de sada? R: O dado de sada ser a mdia final

Computao/Informtica Bsica

2.1. Formas

de representao de um algoritmo

Um algoritmo pode ser representado das seguintes maneiras: Descrio Narrativa: utiliza linguagem natural para especificar os passos para a realizao das tarefas. Isso d margens a ms interpretaes e ambigidades. No muito utilizada. Fluxograma: uma forma universal de representao, pois utiliza de formas geomtricas para ilustrar os passos a serem seguidos para a resoluo dos problemas. Bastante utilizado, tambm chamados por alguns autores de diagrama de blocos. Diagrama de Chapin (Diagrama Nassi-Shneiderman/Diagrama N-S): apresenta a soluo do problema por meio de um diagrama de quadros com uma viso hierrquica e estruturada. Esse tipo de diagrama no muito utilizado, pois muito difcil representar recursividade, entre outros procedimentos. Pseudocdigo (Portugol/Portugus Estruturado): utiliza linguagem estruturada. bastante utilizado para representao da resoluo de problemas computacionais.

Computao/Informtica Bsica

3. Fluxograma
uma representao grfica de algoritmos onde formas geomtricas diferentes implicam aes (instrues, comandos) distintas. Tal propriedade facilita o entendimento das ideias contidas nos algoritmos e justifica sua popularidade. A seguir so apresentados os principais smbolos e suas descries. importante lembrar que existem pequenas diferenas entre as simbologias utilizadas pelos diferentes autores.

Incio/Fim

Entrada de dados ou

Sada de dados ou

Atribuio

Computao/Informtica Bsica

Se

Escolha

Deciso

Computao/Informtica Bsica

Para

Enquanto

Repetio

Repita

Em um fluxograma, os passos de um algoritmo so representados por smbolos e a ordem de execuo desses passos representada por setas conectando os smbolos. Cada smbolo pode conter uma anotao indicando sua finalidade especfica.

10

Computao/Informtica Bsica

Exemplo 1:

Note que todo dado manipulado pelo computador deve estar armazenado em alguma posio de sua memria. Uma posio de memria contendo um dado que pode ser alterado pelo algoritmo denominada varivel. Basicamente uma varivel possui trs atributos: um nome, um tipo de dado associado mesma e a informao por ela guardada. Toda varivel possui um nome que tem a funo de diferenci-la das demais. Cada linguagem de programao estabelece suas prprias regras de formao de nomes de variveis. Adotaremos as seguintes regras: Um nome de varivel deve necessariamente comear com uma letra; Um nome de varivel no deve conter nenhum smbolo especial, exceto a sublinha ( _ ). Obviamente interessante adotar nomes de variveis relacionados s funes que sero exercidas pelas mesmas dentro de um programa. Outro atributo caracterstico de uma varivel o tipo de dado que ela pode armazenar. Este atributo define a natureza das informaes contidas na varivel. Por ltimo, h o atributo informao, que nada mais do que a informao til contida na varivel. Uma vez definidos, os atributos nome e tipo de dados de uma varivel no podem ser alterados e assim permanecem durante toda a sua existncia, desde que o programa que a utiliza no seja modificado. Por outro lado, o atributo informao est constantemente sujeito a mudanas, de acordo com o fluxo de execuo do programa. Por exemplo, se definirmos que uma determinada varivel chamada salrio e destinada a guardar nmeros reais, possvel que seu contedo seja, num dado instante, igual a 1.500,00 e posteriormente modificado para 3.485,21, de acordo com o programa executado.

11

Computao/Informtica Bsica

Em resumo, o conceito de varivel foi criado para facilitar a vida dos programadores, permitindo acessar informaes na memria dos computadores por meio de um nome, em vez do endereo de uma clula de memria.

12

Computao/Informtica Bsica

Exerccios
1. Explique o que uma varivel e escreva a regra para criao de nome de variveis em algoritmos. 2. Dados os identificadores (nomes das variveis) abaixo, sublinhe apenas aqueles nomes que so aceitos em Algoritmos.

VALOR 1nome preo preco

SALARIO-LIQUIDO 1 Nota Nota-do-aluno

X 3x4 Mdia NoTa

X2 Maria XYZ Algoritmo

A1B2C3 Km/h SalarioLiquido profissao

3. Escreva um algoritmo em Descrio Narrativa e Fluxograma para cada situao abaixo: a) Carlos precisa calcular a rea de uma sala. Sabe-se que a sala retangular. b) O professor de matemtica precisa calcular a mdia de um aluno. Para tanto ele precisa levar em considerao 4 notas do aluno. c) Ler um nmero inteiro e imprimir seu sucessor e seu antecessor. d) Ler o saldo de uma aplicao e imprimir o novo saldo, considerando um reajuste de 1%. e) Ler duas variveis inteiras e trocar o contedo entre elas apresentando o nome de cada varivel com seu respectivo valor ao usurio. f) O preo de um produto ao consumidor a soma do preo de custo e da porcentagem do imposto. Faa um algoritmo que leia o nome do produto, o custo de fbrica e a porcentagem do imposto. Exiba o nome do produto e o preo final ao consumidor.

13

Computao/Informtica Bsica

4. Pseudocdigo
O pseudocdigo um tipo de algoritmo que utiliza uma linguagem flexvel, intermediria entre a linguagem natural e a linguagem de programao. Aqui, cada smbolo utilizado no fluxograma possui uma palavra chave equivalente, o que torna o fluxograma livre de ambiguidades. Esta forma de representao de algoritmos mais rica em detalhes, como a definio dos tipos das variveis usadas. Na verdade, esta representao suficiente para permitir que a traduo de um algoritmo nela representado para uma linguagem de programao especfica seja praticamente direta. Forma geral: Algoritmo <nome do algoritmo>; <declarao de variveis>; <subalgoritmos> Incio <corpo do algoritmo>; Fim

Exemplo 1: Algoritmo Media; Var nota1, nota2, mf: real; Inicio Escreva (Entre com a primeira nota: ); Leia (nota1); Escreva (Entre com a segunda nota: ); Leia (nota2); mf (nota1 + nota2 * 2) / 3; Escreva (Mdia final: , mf); Fim Identificao do algoritmo Declarao de variveis

Corpo do algoritmo

Para definir o nome de um algoritmo, deve-se seguir a mesma regra para criao de nomes de variveis, ou seja, o nome do algoritmo deve iniciar com uma letra e no conter caracteres especiais. Todas as variveis utilizadas no algoritmo devem ser declaradas. neste momento que definimos o nome da varivel e o tipo de dado que ser armazenado na mesma. Na confeco de algoritmos, utilizamos os tipos de dados primitivos (literal, lgico, inteiro e real), uma vez que os algoritmos apenas representam a soluo dos problemas. J na confeco de programas existem desdobramentos para esses tipos de dados a fim de adequ-los melhor ao propsito de cada linguagem e resoluo prtica dos problemas. Veja na tabela a seguir os tipos de dados primitivos utilizados em algoritmos. Tipo de Dados inteiro Definio Representa nmeros inteiros (sem casas decimais) positivos ou negativos. Representa nmeros reais (com casas decimais) positivos ou negativos. Poder receber letras, nmeros e smbolos. OBS: Os nmeros armazenados Capacidade de armazenamento 2 bytes = 28 x 28 = 65.536 possibilidades (-32.768 32.767). 4 bytes = 28 x 28 x 28 x 28 = 4.294.967.296 possibilidades (-3,4E-38 +3,4E+38). 1 byte para cada caracter necessrio.

real

literal

14

Computao/Informtica Bsica

lgico

em uma varivel cujo tipo de dado literal no podem ser utilizados para clculo. Poder ser verdadeiro (1) ou falso (0)

1 byte

O corpo do algoritmo a rea reservada para a resoluo do problema. Nesta parte, devem-se escrever todos os passos lgicos necessrios para solucionar o problema, tais como: representar a entrada de valores para as variveis; representar as operaes de atribuio, lgicas e aritmticas; representar a abertura e fechamento de arquivos; representar os laos de repetio; representar a exibio dos resultados; representar as estruturas de deciso; entre outros.

Incio/Fim

Incio Fim

Entrada de dados

Leia (<varivel>);

Sada de dados

Escreva (<valor a ser impresso>); <varivel> <valor>; Se Se (<condio>) Ento <Comando 1>; Seno <Comando 2>; Fim_Se Escolha Escolha (<varivel>) Caso <valor_1>: <Comando 1>; Caso <valor_2>: <Comando 2>; ..... Caso <valor_n>: <Comando n>; Seno <Comando n + 1>; Fim_Escolha

Atribuio

Deciso

15

Computao/Informtica Bsica

Para Para <var> de <incio> at <fim> incr de <inc> faa <comando>; Fim_Para Enquanto Repetio Enquanto (<condio>) faa <comando>; Fim_Enquanto Repita Repita <comando>; at que (<condio>);

Exerccios
1. Classifique os dados especificados abaixo de acordo com seu tipo (inteiro, real, literal ou lgico). 0.7845 +35987 .V. .F. 32 32.0 -0.0 abc .F. -0.0 +36 -1

2. Preencha a Declarao de variveis com o tipo de dados, levando em considerao os dados armazenados em cada uma das variveis da tabela abaixo: Identificadores Contedo (Dados) num1 100 num2 4 sexo F letra .V. Profissao Mdico nome Fernanda media 5.7 peso 67.8

Var num1, num2:___________________; sexo:__________________________; letra: _________________________; Profissao,nome:_________________; media, peso:____________________; 3. Escreva um algoritmo em Pseudocdigo para cada situao abaixo: a. O professor de matemtica precisa calcular a mdia de um aluno. Para tanto ele precisa levar em considerao 4 notas do aluno. b. Ler um nmero inteiro e imprimir seu sucessor e seu antecessor. c. Ler duas variveis inteiras e trocar o contedo entre elas apresentando o nome de cada varivel com seu respectivo valor ao usurio.

16

Computao/Informtica Bsica

d. O preo de um produto ao consumidor a soma do preo de custo e da porcentagem do imposto. Faa um algoritmo que leia o nome do produto, o custo de fbrica e a porcentagem do imposto. Exiba o nome do produto e o preo final ao consumidor. e. Dados o tamanho de um arquivo (em bits), bem como a velocidade da conexo (em bits por segundo), informe o tempo necessrio para o download do arquivo. f. Dados um capital C, uma taxa de juros mensal fixa J e um perodo de aplicao em M meses M, informe o montante F no final do perodo (F = C * (1 + J/100) ).

17