Académique Documents
Professionnel Documents
Culture Documents
Linguagem de Programao I
(Programao de Computadores I)
Objetivo do Curso
Capacitar o aluno para desenvolver programas empregando uma linguagem de alto poder com orientao cientfica.
Ementa do Curso
Introduo Sintaxe Funes Bsicas Estruturas de Controle Matrizes Ponteiros Funes Estruturas de Dados Alocao Dinmica de Memria Manipulao de Arquivos
Bibliografia
Apostilas sobre C;
Fundamentos da Programao de Computadores Ana Fernanda G. Ascencio, Edilene Aparecida V. De Campos, 2 Ed., Pearson Prentice Hall, 2007. C Completo e Total Herbert Schildt, 3 Edio, MAKRON Books.
Avaliao e Contato
2 provas => P1 e P2 (9,0 pontos) Dinmicas => D11, D12, D21, D22 (0,5 pontos) Dinmicas Extras => DE1 e DE2 (0,5 pontos) Listas => L1 e L2 (0,5 pontos) Mdia = (N1+N2)/2 N1 = P1 + D11 + D12 + DE1 + L1 N2 = P2 + D21 + D22 + DE2 + L2 Horrio aulas: Seg : N3N4 ( Labime (VIP) / SALA: 6118 ) Qua : N3N4 (Labime(VIP)) Email: soraiapas@gmail.com
Cronograma
Incio Aulas Dinmica 1 (D11) Dinmica 2 (D12) Lista 1 (Entrega at) Simulado P1
Prova 1 Dinmica 3 (D21) Dinmica 4 (D22) Lista 2 (Entrega at) Simulado P2 Prova 2 Reposio Simulado Final ltima Aula Prova Final Fim Perodo
INTRODUO
Algoritmos
O que so algoritmos?
Um algoritmo uma seqncia de instrues ordenadas de forma lgica para a resoluo de uma determinada tarefa ou problema.
Algoritmos
Algoritmos - reforando
algoritmo composto de um conjunto FINITO de passos, em que cada PASSO possui uma ou mais operaes. algoritmo deve ter FIM ! nmero FINITO de PASSOS). (aps concluir um
Exemplo:
At as coisas mais simples podem ser descritas por sequncias lgicas. Algoritmo: chupar uma bala Pegar uma bala Retirar o papel Chupar a bala Jogar o papel no lixo
Este algoritmo no pode ser implementado computacionalmente atravs de uma linguagem de programao.
Exemplo:
Problema: A atividade de um caixa de supermercado . Algoritmo: 1- Realizar leitura do cdigo de barras dos produtos; 2- informar o valor total das compras; 3- receber o pagamento;
Algoritmo Computacional
Sequncia ordenada e finita, de operaes bem definidas e eficazes, operando sobre dados; Deve terminar num perodo de tempo finito e plausvel; Produzir um resultado ou indicar que no possvel encontr-lo.
Exemplo:
Calcular a mdia de alunos:
Exemplo:
O programa que realiza a tarefa anterior pode ser escrito em uma pseudo linguagem da seguinte forma:
PROGRAMA calc_media VAR mensal,bimestral,media: inteiro
INICIO mensal:=bimestral:=media:=0 ESCREVA Digite a nota mensal: LEIA mensal ESCREVA Digite a nota bimestral: LEIA bimestral media:=(mensal+bimestral)/2 ESCREVA A mdia do aluno : ESCREVA media FIM
Linguagem de Programao
Uma linguagem de programao um mtodo padronizado para expressar instrues para um computador.
Linguagem de Programao
Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados sero armazenados ou transmitidos e quais aes devem ser tomadas sob vrias circunstncias.
Linguagem de Programao
Existem dois tipos de linguagens de programao: as de baixo nvel e as de alto nvel. Os computadores interpretam tudo como nmeros em base binria. As linguagens de baixo nvel so interpretadas diretamente pelo computador, tendo um resultado rpido, porm muito difcil e incmodo se trabalhar com elas.
Linguagem de Programao
J as linguagens de alto nvel so mais fceis de se trabalhar e de entender. Elas no so interpretadas diretamente pelo computador, sendo necessrio traduzi-las para linguagem de mquina.
nome_var:= <valor>
Exemplo: nota:= 9.3
Operadores Especiais
% (MOD) Retorna o resto da diviso entre 2 nmeros inteiros. DIV Retorna o valor inteiro que resulta da diviso entre 2 nmeros inteiros
Operadores Lgicos
Retorna verdadeiro se ambas as partes da expresso lgica forem verdadeiras. Basta que uma parte da expresso lgica seja OU VERDADEIRA para retornar VERDADEIRO. Inverte o estado de uma expresso lgica, ou NO seja, de VERDADEIRO passa para FALSO e vice-versa. E
Sada de Dados
ESCREVA(<<varivel>>) ESCREVA('<<texto>>') ESCREVA(<<expresso>>) ESCREVA(<<varivel>>,'<<texto>>',<<exp resso>>) Exemplos: ESCREVA(nome,idade) ESCREVA('Nome: ',nome)
Exemplo:
1. 2. 3. 4. digitar os preos dos produtos; informar o valor total das compras; receber o pagamento; se quantia recebida > valor total para compras calcular troco fornecer troco
ento
... <<comandon>>
... <<comandon>> ... <<comandon>> ... <<comandon>>
Exerccio - Algoritmos
Faa um algoritmo que leia um nmero inteiro, informe se este nmero par ou mpar e imprima seu sucessor e seu antecessor.
Resoluo
Programa alg1 VAR n1:inteiro INCIO escreva(Informe o 1 nmero) leia(n1) Se (n1 % 2=0) ento escreva(Nmero par) Seno escreva(Nmero mpar) escreva(Nmero lido: ,n1) escreva(Antecessor: ,n1-1) escreva(Sucessor: , n1+1) FIM
Exemplo:
No exemplo inicial, supor que a caixa no saiba a quantidade de produtos, cujos preos devem ser registrados. Algoritmo: 1- enquanto houver produto com preo ainda no registrado faa ler o preo de um produto digit-lo 2- Informar o valor total das compras; 3- Receber o pagamento; 4- se a quantia recebida > valor total para as compras Ento calcular troco Fornecer troco
Exemplo:
Algoritmo: 1- para i=1 at N faa ler o preo de um produto digit-lo 2- Informar o valor total das compras; 3- Receber o pagamento; 4- se a quantia recebida > valor total para as compras ento calcular troco fornecer troco
Exemplo:
Algoritmo: 1- repita ler o preo de um produto digit-lo at cdigo produto = 0 2- Informar o valor total das compras; 3- Receber o pagamento; 4- se a quantia recebida > valor total para as compras ento calcular troco fornecer troco
Exerccios - Algoritmos
1. Faa um algoritmo para somar os nmeros pares naturais < 100 e imprimir o resultado ao final. 2. Faa um algoritmo para calcular n!, onde n ser informado pelo usurio. 3. Escreva um algoritmo que l um nmero no determinado de valores para a, todos inteiros e positivos, um de cada vez. Calcule e escreva a mdia aritmtica dos valores lidos, a quantidade de valores pares, a quantidade de valores mpares, a percentagem de valores pares e a percentagem de valores mpares. 4. Escrever um algoritmo que gera os nmeros de 1000 a 1999 e escreve aqueles que divididos por 11 do resto 5. 5. Escreva um algoritmo que leia um conjunto de 20 nmeros inteiros e mostre qual foi o maior e o menor nmero fornecido.
Resoluo
Programa Alg2 VAR cont,soma: inteiro INICIO cont:=1 soma:=0 enquanto (cont<100) faa se (cont % 2 = 0) ento soma:=soma+cont cont:=cont+1 fim-enquanto Escreva('Soma dos nmeros pares <100: ',soma) FIM
Resoluo
Programa Alg3 VAR n,fat,i: inteiro INICIO fat:=1 para i:=1 at n faa fat:=fat*i Fim-para Fim-se Escreva('Fatorial de ',n,' ',fat) FIM
Programa Alg4 VAR a,n,npar,nimpar,soma: inteiro media,porcp,porci:real INICIO soma:=0 npar:=0 nimpar:=0 porcp:=0.0 porci:=0.0 Escreva('Informe o valor de a: (-1 para terminar)') Leia(a) enquanto (a<>-1) faa soma:=soma+a se (a % 2=0) ento npar:=npar+1 seno nimpar:=nimpar+1 Fim-se Escreva('Informe o valor de a: (-1 para terminar)') Leia(a) Fim-enquanto media:=soma/(npar+nimpar) porcp:=npar/(npar+nimpar)*100 porci:=nimpar/(npar+nimpar)*100 Escreva('Mdia: ',media,'Total pares: ',npar,' Total mpar: ',nimpar) Escreva('Porcentagem de pares: ',porcp,' Porcentagem de mpares: ',porci) FIM
Resoluo
Resoluo
Programa Alg5 VAR i: inteiro INICIO para i:=1000 at 1999 faa se (i % 11 = 5) ento Escreva(i) fim-se Fim-para FIM
Resoluo
Programa Alg6 VAR i,n,maior,menor: inteiro INICIO Escreva('Informe um nmero: ') Leia(n) menor:=n maior:=n para i:=2 at 20 faa Escreva('Informe um nmero: ') Leia(n) se (n>maior) ento maior:=n Fim-se se (n<menor) ento menor:=n Fim-se Fim-para Escreva('Maior nmero:',maior,' Menor nmero: ',menor) FIM
Exerccio
A serie de fibonacci tem como dados os dois primeiros termos da srie que so, respectivamente 1 e 1. A partir deles, os demais termos so construdos pela seguinte regra Tn = tn-1 +tn-2. A regra diz que o prximo termo obtido pela soma dos dois termos anteriores. Escreva um algoritmo que gere os 30 primeiros termos da Srie de Fibonacci e calcule e escreva a soma desses termos.
Exemplo:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
Resposta
Programa Fibonacci VAR Atual, proximo, n: inteiro INICIO atual = 0 proximo = 1 n = 30 Escreva (proximo + ); enquanto n > 2 faa: soma = atual + proximo Escreva (soma + ) atual = proximo proximo = soma n = n 1; Fim do loop FIM