Академический Документы
Профессиональный Документы
Культура Документы
PROGRAMAO I
VITRIA
2009
2
Governo Federal
Ministro de Educao
Fernando Haddad
Ifes Instituto Federal do Esprito Santo
Reitor
Dnio Rebello Arantes
Pr-Reitora de Ensino
Cristiane Tenan Schlittler dos Santos
Coordenadora do CEAD Centro de Educao a Distncia
Yvina Pavan Baldo
Coordenadoras da UAB Universidade Aberta do Brasil
Yvina Pavan Baldo
Maria das Graas Zamborlini
Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas
Coordenao de Curso
Isaura Nobre
Designer Instrucional
Danielli Veiga Carneiro
Professor Especialista/Autor
Solimara Ravani SantAnna
DIREITOS RESERVADOS
Ifes Instituto Federal do Esprito Santo
Av. Vitria Jucutuquara Vitria ES - CEP - (27) 3331.2139
Crditos de autoria da editorao
Capa: Juliana Cristina da Silva
Projeto grfico: Juliana Cristina da Silva / Nelson Torres
Iconografia: Nelson Torres
Editorao eletrnica: Duo Translations
Reviso Tcnica:
Henrique Monteiro Cristovo
Reviso de texto:
Ilioni Augusta da Costa
Maria Madalena Covre da Silva
COPYRIGHT proibida a reproduo, mesmo que parcial, por qualquer meio, sem autorizao escrita dos autores
e do detentor dos direitos autorais.
Tecnologia em Anlise e Desenvolvimento de Sistemas
Ol, Aluno(a)!
Equipe do Ifes
Programao I
ICONOGRAFIA
Veja, abaixo, alguns smbolos utilizados neste material para gui-lo em seus estudos.
Fala do Professor
PROGRAMAO I
Cap. 1 - ALGORITMOS 9
1.1 Entendendo Algoritmos 9
1.2 Construindo Algoritmos 10
1.3 Construindo Algoritmos Para Computadores 13
1.3.1 Reservando Memria 13
1.3.2 Variveis 13
1.3.3 Constantes 17
1.4 Operadores 19
1.4.1 Operadores Aritmticos 19
1.4.2 Operadores Relacionais 19
1.4.3 Operadores Lgicos 19
1.5 Expresso Aritmtica e Expresso Lgica 21
1.5.1 Expresso Aritmtica 21
1.5.2 Expresso Lgica 21
1.6 Comandos de Atribuio, de Entrada, de Sada e
Comentrio 24
1.6.1 Comando de Atribuio 24
1.6.2 Comando de Entrada 25
1.6.3 Comando de Sada 25
1.6.4 Comentrios 26
1.6.5 Como Construir Algoritmo 29
Cap. 2 - LINGUAGEM C 35
2.1 As Telas do Bloodshed Dev-C++ 36
2.2 Viso Geral da Linguagem C 41
2.3 Comandos da Linguagem de Programao C 42
2.4 Constantes e Variveis na Linguagem de
Programao C 47
2.4.1 Tipos de Variveis na Linguagem de
Programao C 48
2.5 Alguns dos Cdigos para Impresso Formatada
de Printf( ) 49
2.6 Cdigos Utilizados Pela Funo Scanf( ) 50
2.7 Como fazer Comentrios 50
2.8 Comandos de Seleo 54
2.8.1 Comando If 54
2.8.2 Comando If-Else 60
2.8.3 Comando Switch 67
2.9 Comandos de Repetio 74
Programao I
APRESENTAO
Ol,
Nessa disciplina vamos conhecer o que Algoritmo e aprender a resolver problemas de forma que o computador possa
entender e executar.
Vamos aprender os conceitos bsicos da linguagem de programao C, que ser utilizada para desenvolvimento dos programas.
O material impresso que voc utilizar nessa disciplina foi preparado valorizando os detalhes, no intuito de amenizar as dificuldades que possam aparecer em nosso percurso, na sala de aula.
importante que voc o tenha sempre ao alcance, aproveitando o tempo disponvel para leitura, reviso ou execuo
das atividades.
Todas as atividades aqui propostas, apesar de no serem avaliativas, devero ser realizadas individualmente, pois s dessa forma
voc adquirir auto confiana, e prtica na soluo de problemas
que envolvem computadores.
Para valorizar o estudo of-line, sero encontradas ao longo do
material, Ilustraes demostrando digitao, compilao e execuo (no DEV C++), dos exemplos apresentados, j que alguns alunos no dispem de computador com facilidade.
Apesar de a equipe EaD ser composta por profissionais compromissados com o seu aprendizado, importante que voc
faa a sua parte com o mesmo comprometimento; s assim
todos, voc e a equipe EaD, podero desfrutar do sucesso ao
final dessa caminhada.
Bom estudo!!!!
Programao I
ALGORITMOS
Caro aluno,
Vamos iniciar o primeiro captulo, em que voc estudar o conceito de Algoritmo. Nessa fase, trabalharemos com exemplos da nossa
vida diria no intuito de um entendimento correto desse conceito.
importante que ao final deste Captulo, voc tenha clareza a respeito do significado de Algoritmo, a fim de iniciarmos nossa trajetria no mundo computacional.
Bom estudo!
10
Captulo 1
11
Algoritmos
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
2. Acesse o link: http://rachacuca.com.br/calculadora-quebrada/
Nesse link encontraremos uma calculadora quebrada e problemas a resolver.
Clicando no boto <PRXIMO>, teremos acesso ao primeiro problema.
Lembre-se de descrever a soluo passo a passo, como fizemos
nos exemplos acima. ___________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
3. Vamos acessar o link: http://rachacuca.com.br/jarros/
Nesse link encontraremos jarros e problemas a resolver.
Clicando no boto <JOGAR>, teremos acesso ao primeiro problema.
Resolva-o.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
12
Captulo 1
Ol,
Com a concluso dos exerccios, podemos observar que cada um
aponta uma soluo, para os problemas apresentados. Cada soluo
criada um Algoritmo.
Vamos em frente!!!
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Nosso objetivo, no entanto, criar Algoritmos compostos de passos que o computador seja capaz de entender e executar e no
Algoritmos com passos que as pessoas sejam capazes de entender e
executar. Ento, precisaremos somar mais conhecimentos aos vistos
at aqui, uma vez que o computador no poderia executar os passos
descritos em nossos exemplos acima.
13
Algoritmos
1.3.2 Variveis
Sintaxe: tipo identificador <ou Lista-de-identificadores>;
Alm de reservar a memria, temos que informar ao computador como
vamos nos referir a essa reserva, ou seja, como denominaremos, o espao de memria reservado.
Programao I
14
Captulo 1
15
Algoritmos
EXEMPLO
1NUM
1Num; Nome(M);
B Letra B-Letra
N*B
B_Letra
Se vai guardar nome de funcionrios, crie a varivel utilizando a
palavra NOME.
Programao I
16
Captulo 1
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Ol,
As atividades aqui propostas no so avaliativas. Sugiro, entretanto,
que sejam realizadas sem consultas, dessa forma poderemos acompanhar o desenvolvimento.
Bom Estudo!!!
3. Aprendemos que, ao declarar uma varivel precisamos seguir algumas regras. Assinale, as variveis que obedecem s
regras estabelecidas:
a) ( ) NUM1
e) ( ) TELEFONE
i) ( ) P_Num
b ) ( ) 1 NUM
f) ( ) Nome
j) ( ) Num_RUA
c) ( ) 1NUM
g) ( ) R-2
k) ( ) Certo
d ) ( ) SEXO
h) ( ) Rua
l) ( ) MATR
17
Algoritmos
4. Para cada valor apresentado abaixo, foi definido um tipo de varivel. Marque com X os tipos que foram definidos corretamente:
a)( ) valor= 1.0 tipo= real
i)( ) valor= F
tipo = cadeia
1.3.3 Constantes
Sintaxe: const identificador = valor;
As constantes so criadas com base nas mesmas regras e tipos j vistos
em varivel. Diferem apenas no fato de armazenar um valor constante,
ou seja, que no se modifica durante a execuo de um programa.
Se voc entendeu como declarar uma varivel, ficar fcil entender como
se cria uma constante.
Vamos tomar como exemplo a folha de pagamento dos funcionrios de
uma determinada empresa:
Se assumirmos que a empresa conceder um aumento de 10%
aos seus funcionrios independentemente do valor do salrio,
a taxa de 10% ser uma constante, durante a execuo do programa que efetuar o clculo.
Nossa constante ficaria assim declarada: const TAXA= 0.10;
O nome da empresa tambm ser uma constante, ele ser impresso em todos os contra-cheques, teremos mais uma constante.
E a declararamos assim: const NOME;
NOME = Empresa X;
Constante: Varivel com valor pr-definido que no pode ser modificado por nenhuma funo de um programa. (LAUREANO, 2005, p.16).
Programao I
18
Captulo 1
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
] f) 0,10 [
c)falso [
] g) Ifes [
d) TRUE [
] h) 2007 [
e ) FALSO [
] i ) verdadeiro [
19
Algoritmos
1.4 Operadores
Os operadores so smbolos que representam uma operao aritmtica
ou lgica.
1.4.1 Operadores Aritmticos
Os operadores aritmticos so empregados em expresso aritmtica em
que so utilizados constantes ou variveis do tipo real ou inteira, como
operandos. Vamos ver abaixo a ordem de precedncia:
adio
subtrao
multiplicao
diviso
+
*
/
=
>
<
>=
<=
!=
Programao I
20
Captulo 1
Chamaremos a 1 proposio de P.
E chamaremos a 2 proposio de Q.
Q
V
F
V
F
P ou Q
V
V
V
F
Q
V
F
V
F
PeQ
V
F
F
F
Nesse caso, para tirar uma nota favorvel, o aluno, alm de estudar,
ter de colar.
Abaixo, a tabela para o operador lgico NO:
P
V
F
No P
F
V
Operador
aritmtico
relacional
lgico - no
lgico - e
lgico -ou
21
Algoritmos
Operador
* /
+ -
Operao
multiplicao, diviso
adio, subtrao
Utilizando vrios nveis de parnteses, quebraremos a prioridade e obteremos uma seqncia de clculo diferente.
Programao I
22
Captulo 1
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
23
Algoritmos
Ol,
importante que as atividades abaixo sejam realizadas na ordem
proposta, j que o grau de dificuldade vai crescendo na mesma
ordem.
Bom estudo!!
Programao I
24
Captulo 1
25
Algoritmos
A forma correta de fazer essa indicao por meio do comando de atribuio, representado por uma seta().
Assim: var int NUM;
NUM 10;
SEXO F;
var real SALRIO;
escreva(Ol, , NOME);
}
Programao I
26
Captulo 1
Ol, ,NOME
escreva(Ol, , NOME);
a sada seria exatamente o contedo entre as aspas.
Portanto, coloque fora das aspas tudo aquilo que deve ser resolvido
pelo computador.
1.6.4 Comentrios
Utilizaremos comentrio para explicar detalhes que julgarmos necessrios
em nosso programa. Desta forma, aumentamos a legibilidade do nosso algoritmo. Lembre-se que no devemos fazer programas apenas para que o
computador execute, mas tambm para outras pessoas possam entend-lo e
assim participarem da sua construo e/ou manuteno.
Exemplo:
27
Algoritmos
Ol,
Gostaria de chamar a ateno para a importncia de as atividades
serem realizadas individualmente.
Bom estudo !!!
linha 2 ... {
linha 10 ... }
Programao I
28
Captulo 1
_____(NOTA1);
linha 6 ...
escreva( _______________________);
linha 7 ...
leia(________);
linha 8 ...
linha 9 ...
linha 10 ... }
14. Faa o mesmo no Algoritmo abaixo, cuja finalidade calcular
8% de aumento sobre um salrio. linha 1 ... Algoritmo reajuste;
linha 2 ... {
linha 3 ...
_____(SALARIO);
linha 6 ...
29
Algoritmos
atribuio: Consiste em atribuir um valor a uma varivel previamente declarada.(LAUREANO, 2005, p.27).
entrada: Mecanismo de entrada consiste em ler caracteres da
entrada-padro, normalmente teclado. (SCHILDT, 1995, p.15).
sada: Mecanismo de sada consiste em escrever caracteres da
sada-padro, normalmente monitor. (SCHILDT, 1995, p.15).
cometrios: Texto que no interpretado pelo compilador.
(LAUREANO, 2005, p. 6).
Algoritmo multiplicao;
linha 2
linha 3
linha 4
linha 5
leia (NUM1);
linha 6
linha 7
leia (NUM2);
linha 8
MULT
linha 9
linha 10
NUM1 * NUM2;
Programao I
30
Captulo 1
31
Algoritmos
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
17. O custo ao consumidor de um carro novo a soma do custo de
fbrica com a porcentagem do distribuidor e dos impostos (aplicados ao custo de fbrica). Supondo que a porcentagem do distribuidor seja 12% e a dos impostos 45%, prepare um Algoritmo
para ler o custo de fbrica do carro e imprimir o custo do carro
para o consumidor.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
18. Uma empresa tem fichas que contm o nome, o nmero de
horas trabalhadas e o nmero de dependentes de cada um de
seus funcionrios.
Considerando que:
a empresa paga 12 reais por hora trabalhada e 40 reais
por dependente;
desconta do salrio 8,5% para o INSS e 5% para IRRF.
Programao I
32
Captulo 1
Faa um Algoritmo para ler o nome, o nmero de horas trabalhadas e o nmero de dependentes de um funcionrio.
No final, o programa dever exibir o nome, o salrio bruto, os
valores descontados para cada tipo de imposto e o salrio lquido
do funcionrio.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
33
Algoritmos
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Programao I
34
Captulo 1
Leituras complementares:
SCHILDT, Herbert. C Completo e Total. So Paulo: Pearson,
2006.
KERNIGHAN Brian W. C Linguagem de Programao Paro
ANSI. Rio de Janeiro: Elsevier, 1989.
35
LINGUAGEM C
Caro aluno,
Vamos iniciar o segundo Captulo da nossa disciplina. Nessa etapa, importante que as atividades sejam feitas no computador.
Desenvolveremos programas que nos ajudaro a melhorar nosso
raciocnio lgico e a nossa agilidade na soluo de problemas de
forma que o computador seja capaz de interpretar.
Se voc ainda no fez o download do ambiente Bloodshed Dev-C++,
este o momento.
Vamos em frente!!!!
A partir desta aula, vamos construir Algoritmos de forma que o computador possa entender e executar. Para isso, vamos conhecer a linguagem
de programao C.
linguagem de programao: Uma Linguagem de Programao um mtodo padronizado para expressar instrues para
um computador. (LAUREANO, 2005, p. 4).
programas: Um programa de computador uma coleo de
instrues que descrevem uma tarefa a ser realizada por um
computador. (LAUREANO, 2005, p. 4).
cdigo fonte: Uma linguagem de programao um conjunto
de ferramentas, regras de sintaxe e smbolos ou cdigos que
nos permitem escrever programas de computador, destinados a instruir o computador para a realizao de suas tarefas.
(LAUREANO, 2005, p. 5).
Programao I
36
Captulo 2
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Para compilar nossos programas, usaremos o ambiente Bloodshed
Dev-C++, disponvel gratuitamente no link http://superdownloads.uol.
com.br/download/199/bloodshed-dev-c/, ou no ambiente Moodle.
Linguagem C
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
37
38
Captulo 2
2 passo janela 2
Clique em meu Arquivo>Novo>Projeto, como apresentado na Ilustrao 2:
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
___________________________________________________
____________________________________________________
Linguagem C
3 passo janela 3
Clique no cone <Console Aplication>, no boto <Projeto C> e finalmente no <OK>. Observe a Ilustrao 3, ela o ajudar a executar esses passos:
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
___________________________________________________
____________________________________________________
Programao I
39
40
Captulo 2
4 passo janela 4
A janela Create new project se abrir para iniciarmos nosso projeto,
conforme Ilustrao 4.
No campo <nome do arquivo>, digite um nome para seu arquivo e
clique em <Salvar>.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
____________________________________________________
Linguagem C
5 passo janela 5
nessa janela que vamos digitar nosso cdigo, conforme indica a
Ilustrao 5.
Neste primeiro momento, no exploraremos todos os menus disponveis no ambiente Bloodshed Dev-C+. A exposio dos seus recursos se dar medida que avanarmos nos nossos estudos.
Vamos em frente!!!
Programao I
41
42
Captulo 2
Exemplo1:
as mudanas de estado do sistema.
Linguagem Portugol
linha 1 Algoritmo soma;
linha 2 {
linha 3 var int NUM1, NUM2,
SOMA;
linha 4 escreva ( Digite o primeiro
nmero);
linha 5 leia (NUM1);
linha 6 escreva ( Digite o segundo
nmero);
linha 7 leia (NUM2);
Linguagem C
linha 1 #include <stdio.h>
linha 2 #include <stdlib.h>
linha 3 int main( )
linha 4 {
linha 5 int num1, num2, soma;
linha 6 printf( Digite o primeiro
numero: );
linha 10 }
linha 9 scanf (%d, &num2);
linha 10 soma = num1 + num2;
linha 11 printf( A soma e: %d \n,
soma);
linha 12 system(PAUSE);
linha 13 return(0);
linha 14 }
Linguagem C
43
44
Captulo 2
45
Linguagem C
#include
<stdio.h>
de erro
int num1,
num2, soma;
comando ainda no terminou e por isso vai acusar erro na linha posterior,
quando o cdigo j no faz
mais sentido. Outros erros
em linhas mais abaixo so
indicados em funo deste
primeiro erro.
printf(
Digite o
primeiro
numero: );
refe- No foi encontrada a funprimeiro numero: rence to `printe o printe nas bibliotecas
scanf (%d,
&num2);
scanf
);
&num2);
indicadas
(%d, Linha
10:
return (0);
return 0);
before
token
Programao I
46
Captulo 2
Para acertar o erro faa a edio diretamente no ponto desejado e recompile: CTRL F9
Quando no houver mais erros ser mostrada a tela da ilustrao 7.
47
Linguagem C
Ol,
As explicaes dadas na sequncia do contedo sero acompanhadas de exemplos que voc dever digitar, compilar e executar no
programa DEV C++..
Depois de execut-los, o cdigo fonte dever ser analisado e entendido.
A fim de facilitar o estudo, mesmo longe do computador, a partir daqui
duas telas sero sempre apresentadas abaixo do exemplo. So elas:
A tela branca, que contm o cdigo do programa citado
como exemplo, devidamente digitado no DEV C++.
A tela preta, que o resultado da compilao e da
execuo.
No avance se as dvidas permanecerem.
Bom estudo !!
Programao I
48
Captulo 2
BYTES
char
int
float
Exemplo 3:
Linguagem C
SIGNIFICADO
usado quando a funo for exibir apenas um caractere (tipo char).
Exemplo: M
%f
%s
%d
49
50
Captulo 2
CDIGO
FUNO
%c
%d
%f
usado quando a funo for armazenar um nmero real, com possibilidades de casas decimais (tipo float).
%s
Linguagem C
&&
OU
||
NO
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
51
52
Captulo 2
Linguagem C
Programao I
53
54
Captulo 2
O comando if ser utilizado quando o programa ou parte dele necessitar de uma condio simples para sua execuo.
Vamos ver um exemplo em que o resultado da soma de dois nmeros s
seja exibido se for maior que 2.
Exemplo 5:
Linguagem C
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
55
56
Captulo 2
Exemplo 6:
Este programa indica se o usurio tem o voto obrigatrio.
Para isso ele solicita a sua idade, em seguida verifica se esta idade maior
ou igual a 18 e ao mesmo tempo menor ou igual a 70. Se sim, ento
exibe a mensagem de voto obrigatrio.
Observe na ilustrao 14 a sada na console para uma entrada com idade igual a 18.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Tecnologia em Anlise e Desenvolvimento de Sistemas
Linguagem C
Exemplo 7:
Este exemplo exibe o preo de um produto com o acrscimo de uma
taxa de venda. Nem todos os produtos possuem esta taxa.
Observe que a entrada da taxa de venda condicionada a resposta do
usurio. Mas, em ambos os casos o programa exibe o preo final do produto, com ou sem acrscimo.
57
58
Captulo 2
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Ol,
Faamos as atividades propostas, a seguir, para verificar como estamos desenvolvendo o nosso aprendizado.
importante que voc digite os exemplos vistos, conforme orientao dada no incio deste Captulo.
Vamos em frente!!!
Linguagem C
23. Faa um programa que leia o sexo do usurio e apresente a mensagem O sexo vlido, se o caractere digitado for M ou F.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
24. Faa um programa que leia um nmero dado como entrada e
apresente a mensagem O nmero est na faixa correta, somente
se o valor fornecido for entre 20 e 90.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
59
60
Captulo 2
25. Faa um programa que leia o valor do salrio bruto de um funcionrio. Se o salrio for menor ou igual a R$ 500,00, o programa
deve aplicar um aumento de 10%. Em seguida exiba o salrio,
independente se ele sofreu reajuste ou no.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Linguagem C
Exemplo 8:
Programao I
61
62
Captulo 2
Observe na ilustrao 18 a sada no console para uma entrada com idade igual a 17.
Linguagem C
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
63
64
Captulo 2
Exemplo 10:
Neste exemplo, o usurio responde o valor do salrio e em seguida recebe uma classificao por nvel , variando de 1 a 6. A primeira comparao verifica se o salrio negativo. Neste caso, o programa acusa erro.
65
Linguagem C
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
66
Captulo 2
27. Como complemento do exerccio 23, o programa dever exibir tambm a mensagem Sexo invlido, se o caractere digitado
for diferente de M ou F.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
28. Como complemento do exerccio 24, o programa dever exibir
tambm a mensagem O nmero est na faixa incorreta, caso o
valor fornecido no esteja entre 20 e 90.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
29. Como complemento do exerccio 25, o programa dever aplicar
tambm um aumento de 5%, se o salrio for maior do que R$ 500,00.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Tecnologia em Anlise e Desenvolvimento de Sistemas
Linguagem C
switch (varivel)
{
case constante 1 : declarao 1; break;
case constante 2 : declarao 2; break;
default:
declarao_default;
}
O comando switch similar ao if-else, mas no poder ser usado quando a condio a ser testada for uma expresso.
S aceitvel uma varivel no switch. Esta varivel deve ser de algum
tipo numrico inteiro, como por exemplo, int e char (char armazena o
cdigo ASCII do caracter, isto , um nmero inteiro).
Exemplo 11:
Neste programa o usurio, alm de digitar 2 nmeros inteiros, poder
escolher a operao a ser realizada.
Este exemplo no condiz com o cdigo!!!
Programao I
67
68
Captulo 2
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Linguagem C
Exemplo 12:
O usurio informa o nmero do ms e o programa responde com o nome
deste ms. Se o valor no for de 1 a 12 exibida uma mensagem de alerta.
Programao I
69
70
Captulo 2
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Exemplo 13:
Neste exemplo o usurio informa o nmero do ms e o programa exibe
a quantidade mxima de dias possveis para o referido ms. Observe
que os comandos case podem ser agrupados para disparar uma nica
ao. Por exemplo, os meses abril, junho, setembro e novembro (nmeros 4, 6, 9 e 11) possuem um mximo de 30 dias e assim fazem uma
nica atribuio de 30 para a varivel maximoDias.
Linguagem C
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
71
72
Captulo 2
30. Faa um programa que leia trs valores distintos a serem digitados pelo usurio e, utilizando o comando if-else , determine
e exiba o menor deles.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
31. Uma empresa dar aumento aos seus funcionrios, de acordo
com sua funo:
a) funo 1 (vendedor) = 0,10(10%) de aumento;
b) funo 2 (gerente) = 0,15(15%) de aumento;
c) funo 3 (diretor) = 0,20(20%) de aumento.
Usando o comando switch, faa um programa que leia o salrio e
a funo do funcionrio, calcule e exiba os salrios com os devidos aumentos.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Linguagem C
Programao I
73
74
Captulo 2
Linguagem C
Exemplo 15:
Uma outra utilizao simples: exibir os nmeros pares de 10 a 500.
Programao I
75
76
Captulo 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
int main()
{
float nota, soma=0, media=0, conta;
for(conta=0; conta<=9; conta++)
{
printf( Digite a nota );
scanf(%f,¬a);
soma=soma+nota;
}//esta chave encerra o comando de repetio for.
media= soma/conta;
printf( A media da turma e %f \n,media);
system(PAUSE);
return 0;
}
Linguagem C
Programao I
77
78
Captulo 2
Ol,
Para fazer as atividades seguintes, lembre-se de consultar todo material j disponvel e ainda outros materiais, se julgar necessrio.
Tente sempre fazer suas atividades individualmente, pois isso, lhe
dar autoconfiana e voc crescer em conhecimento e agilidade
para resolver problemas.
Bom estudo !!!
Linguagem C
Programao I
79
80
Captulo 2
Linguagem C
1
2
3
4
5
6
#include <stdio.h>
#include <stdlib.h>
int main()
{
float nota, soma=0, media=0;
int resp=1, contador=0;
linha 7
while(resp==1)
linha 8
linha 9
linha 10
scanf(%f,¬a);
linha 11
soma=soma+nota;
linha 12
linha 13
scanf(%d,&resp);
linha 14
linha 15
linha 16
media= soma/contador;
linha 17
linha 18
system(PAUSE);
linha 19
return 0;
linha 20 }
Programao I
81
82
Captulo 2
A varivel contador guardar a quantidade de vezes que o usurio digitou uma nota, o que corresponder quantidade de alunos. Precisaremos desse total para calcular a mdia da turma.
linha 7... while (resp= =1)
Observe que enquanto a resp for igual a 1(um) o loop ser executado.
Assim podemos entender o motivo pelo qual iniciamos a varivel resp
no momento da sua declarao. Caso o valor 1 no fosse atribudo
varivel, no incio, o programa nunca seria executado.
linha 14... contador++
A varivel contador est acumulando as entradas.
Vamos ver na Ilustrao 16 o resultado da compilao e da execuo do
nosso programa:
Exemplo 18:
Vamos refazer o exemplo 15 (exibe os nmeros pares de 10 a 500), agora
com o comando while.
Linguagem C
Comparando com o exemplo 15, como se houvesse um desmembramento das trs expresses do comando for. A primera fica logo no incio
pois avaliada apenas uma vez. A segunda permanece no comando pois
a condio para manter a repetio, e a terceira fica no final do bloco
de comandos pois executada somente depois.
A sada no console do exemplo 18 igual a do exemplo 15.
Exemplo 19:
O usurio ir fornecer uma relao de notas dos alunos de uma turma.
Para terminar a entrada ele ter que digitar uma nota negativa. Em seguida ser exibida a maior de todas as notas.
Programao I
83
84
Captulo 2
Ol,
Lembre-se de que as atividades solicitadas neste fascculo, no so
avaliativas. A finalidade delas dar base ao aluno para que ele possa aproveitar melhor o tempo disponvel quando estiver no ambiente virtual. Os exerccios preparam voc para realizar com sucesso as
atividades propostas na sala de aula virtual.
Por isso, aproveite, faa sempre todas as atividades propostas no seu
material impresso.
Bom estudo !!!
Linguagem C
Programao I
85
86
Captulo 2
40. Faa um programa que leia a data de validade (apenas o nmero do ms) e o preo das mercadorias de um supermercado.
Considere que:
a) A mercadoria que vencer no ms 7 ter um desconto de 15%.
b) A mercadoria que vencer nos meses 8 e 9 ter um desconto de
10%.
c) As mercadorias com vencimento nos demais meses no tero
desconto.
Exiba o preo da mercadoria j com o desconto.
No se sabe a priori a quantidade de mercadorias, por isso o programa ser executado enquanto o usurio quiser.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
comandos;
} while(condio)
Com esse comando, asseguramos que o programa seja executado pelo
menos uma vez. Depois de executar a primeira, o loop continuar a ser
executado, enquanto a condio for verdadeira.
Exemplo 20: Vamos utilizar o mesmo exemplo do comando while.
Linguagem C
#include <stdio.h>
linha 3
int main()
linha 2
linha 4
linha 5
#include <stdlib.h>
{
linha 6
linha 7
linha 8
linha 9
linha 10
linha 11
linha 12
linha 13
linha 14
linha 15
} while(resp==1);
linha 17
linha 16
linha 18
linha 19
linha 20 }
media= soma/contador;
system(PAUSE);
return 0;
Programao I
87
88
Captulo 2
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Tecnologia em Anlise e Desenvolvimento de Sistemas
Linguagem C
Exemplo 21:
Vamos refazer o exemplo 15 (exibe os nmeros pares de 10 a 500), agora
com o comando do-while.
Comparando com o exemplo 18, observamos que a avaliao da condicional par<=500 vai ser feita por ltimo. Neste caso a sada ser a mesma dos exemplos 18 e 15, mas existem casos em que esta mudana traz
diferenas bem visveis pois a verificao s realizada depois que o
processamento j executou pelo menos uma vez o cdigo. Veja mais
detalhes nos trs prximos exemplos.
Exemplos 22, 23: O objetivo obter a letra inicial do nome do usurio e
imprim-la uma determinada quantidade de vezes.
O exemplo 22, a seguir, mostra uma verso feita com while
Programao I
89
90
Captulo 2
Para resolver este problema pode-se usar um comando if-else para verificar se a quantidade maior do que zero. Melhor mesm usar o comando apropriado para cada situao, ou seja, neste caso, o comando while
(como no exemplo 22) ou o comando for que ainda mais adequado para
situaes onde j se tem a quantidade de repeties, como neste caso.
Linguagem C
Programao I
91
92
Captulo 2
Leituras complementares:
KERNIGHAN Brian W. C Linguagem de Programao Paro
ANSI. Rio de Janeiro: Elsevier, 1989.
ROBERT, Sebesta Conceitos de Linguagem de Programao,
BookMan 2003.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Tecnologia em Anlise e Desenvolvimento de Sistemas
VETORES E MATRIZES
Ol,
Neste Captulo ser abordado o conceito de vetor e matriz. Reserve
um tempo maior para estudo e realizao de atividades.
Vamos em frente!!!!
93
94
Captulo 3
NUMEROS
95
Vetores e Matrizes
#include <stdio.h>
linha 3
int main ()
linha 2
linha 4
linha 5
linha 6
#include <stdlib.h>
{
linha 7
linha 9
linha 11
linha 8
linha 10
linha 12
NUMEROS[conta]=conta;
Programao I
96
Captulo 3
linha 13
linha 14
system(pause);
linha 15 }
97
Vetores e Matrizes
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Programao I
98
Captulo 3
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
99
Vetores e Matrizes
100
Captulo 3
NOME
E
0
D
1
U
2
C
3
A
4
C
5
A
6
O
7
\0
8
#include <stdio.h>
linha 3
int main ( )
linha 2
linha 4
linha 5
#include <stdlib.h>
{
linha 6
printf(Digite a mensagem: );
linha 7
gets(Nome);
linha 8
linha 9
char Nome[10];
linha 10 }
system(pause);
Vejamos na Ilustrao 33 como ficar nosso programa, aps ser compilado e executado:
101
Vetores e Matrizes
Programao I
102
Captulo 3
3.2 Matriz
Sintaxe: tipo_da_varivel nome_da_varivel [altura][largura];
Exemplificamos, abaixo, uma matriz para entendermos a sua declarao.
A Ilustrao 34 ir representar a matriz DADOS, capaz de armazenar
as duas notas de 3 alunos.
DADOS
cada linha ir conter
as duas notas, logo:
aluno nota1 nota2
0
80,50 75,90
1
70,50 75,30
2
40,30 60,21
0
1
2
80,50
70,50
40,30
0
75,90
75,30
60,21
1
cada coluna
representa
uma nota, logo:
0 = primeira nota
1 = segunda nota
#include <stdio.h>
#include <stdlib.h>
int main ()
103
Vetores e Matrizes
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
4 {
5
float dados[3][2];
6
int lin,col;
7
printf(INICIANDO O LOOP DE LEITURA \n \n);
8
for(lin=0;lin<3;lin++)
9
for(col=0;col<2;col++)
10
{
11
printf(Digite a nota: );
12
scanf(%f, &dados[lin][col]);
13
}
14
printf(\nINICIANDO O LOOP DE EXIBICAO \n\n);
15
for(lin=0;lin<3;lin++)
16
for(col=0;col<2;col++)
17
printf(nota = %.2f \n,dados[lin][col]);
18
system(pause);
19 }
Programao I
104
Captulo 3
linha 8
linha 9
for(lin=0;lin<3;lin++)
for(col=0;col<2;col++)
105
Vetores e Matrizes
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
46. Carregue uma matriz 3 x 3 com os valores das vendas de uma
loja supondo 3 meses e 3 vendedores. Calcule e mostre: em cada
ms qual foi o vendedor que vendeu mais.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
106
Captulo 3
Exemplo 29: Faamos uma matriz para armazenar o nome de trs pessoas, sendo que cada nome poder ter, no mximo, 30 caracteres.
linha 1
#include <stdio.h>
linha 2
#include <stdlib.h>
linha 3
int main ()
linha 4
linha 5
char nomes[3][30];
linha 6
int lin;
linha 7
linha 8
for(lin=0;lin<3;lin++)
linha 9
linha 10
printf(Digite o nome: );
linha 11
gets(nomes[lin]);
linha 12
linha 13
linha 14
for(lin=0;lin<3;lin++)
linha 15
linha 16
printf(nome = %s
\n,nomes[lin]);
system(pause);
linha 17 }
107
Vetores e Matrizes
linha 11...
gets(nomes[lin]);
Utilizamos a funo gets( ) para ler os nomes (os caracteres).
linha 15...
for(lin=0;lin<3;lin++)
Exibindo os nomes digitados.
Acompanhe a Ilustrao 26: digitao, compilao e execuo do
Exemplo 29:
Exemplo 30:
Neste programa vamos permitir o cadastro de vrios nomes com as suas
respectivas idades. Ao trmino da entrada ser calculada a mdia das
idades e em seguida ser exibida a relao dos nomes cuja idade maior
do que a mdia.
Programao I
108
Captulo 3
Algumas observaes:
Foi declararada uma matriz de char para que houvesse um limite de 50 nomes com no mximo29 caracteres, pois o ltimo j
reservado ao \0.
O vetor das idades armazena de forma correspondente as posies dos nomes, ou seja, a quinta idade (idades[4]) se refere ao
quinto nome (nomes[4]).
O acesso ao nome feito usando-se apenas a primeira dimenso
da matriz nome[n].
A ilustrao 37 mostra uma possvel execuo do exemplo 30.
109
Vetores e Matrizes
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Programao I
110
Captulo 3
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
111
ESTRUTURAS(STRUCT)
Ol,
Estamos chegando na reta final, importante continuarmos com o
mesmo interesse e com a mesma dedicao.
Este captulo exigir de voc muita dedicao e cumprimento de
todas as tarefas.
Vamos em frente!!!!
Vimos que na Matriz podemos armazenar dados de um mesmo tipo. Na
Estrutura estes dados podem ser de vrios tipos.
tipo_1 nome_1;
tipo_2 nome_2;
...
tipo_n nome_n;
} variveis_estrutura;
struct pauta
{
int matr;
float media;
} aluno;
Temos que: pauta uma estrutura com dois campos ( matr e media).
aluno uma varivel do tipo pauta.
Programao I
112
Captulo 4
Abaixo foi declarada uma estrutura endereo, que guardar os dados referentes ao endereo de uma nica pessoa:
struct tipo_endereco
{
char rua[50];
int numero;
char bairro[20];
char cidade[30];
char sigla_estado[3];
int CEP;
}end;
Criemos, agora uma estrutura chamada ficha_pessoal, com os dados pessoais de uma pessoa:
struct ficha_pessoal
char nome[50];
int telefone;
}agenda;
Vemos, pelo exemplo acima, que uma estrutura pode fazer parte de outra (a struct tipo_endereco usada pela struct ficha_pessoal).
Ol,
Vamos fazer algumas declaraes de estruturas para testar nosso
aprendizado at aqui. As declaraes solicitadas nessa atividade,
devem ser realizadas individualmente.
Consulte a declarao da estrutura pauta, acima. Ela poder
auxili-lo.
Vamos em frente!!!!
Estruturas(STRUCT)
Programao I
113
114
Captulo 4
1 #include <stdio.h>
2 #include <stdlib.h>
3 int main() {
4
struct pauta
5
{
6
int matr;
7
float media;
8
}aluno;
9
printf(...SOLICITANDO OS DADOS...\n \n);
10
printf(Digite a matricula: );
11
scanf(%d, &aluno.matr);
12
printf(Digita a media: );
13
scanf(%f, &aluno.media);
14
printf( \n...MOSTRANDO OS DADOS...\n \n);
15
printf(Matricula = %d\n,aluno.matr);
16
printf(Media = %.2f \n, aluno.media);
17
system(pause);
18
return (0); }
Estruturas(STRUCT)
49. Aproveitando as declaraes feitas na atividade 41, vamos agora desenvolver o programa:
a) Faa um programa que leia e exiba a mdia final e na matrcula
de um aluno: _______________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
b) Faa um programa que leia e exiba a matrcula, os nmeros de
dependentes e o salrio de um funcionrio:
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
115
116
Captulo 4
Ol,
At aqui fizemos vrias atividades de estruturas, armazenando dados de uma nica pessoa. Vamos, agora, fazer estruturas que armazenem os dados de vrias pessoas e alterar os exerccios propostos na
atividade 42 !!
Vamos em frente!!!!
struct pauta
{
int matr;
float media;
} aluno[4];
117
Estruturas(STRUCT)
Pronto, declaramos que a varivel aluno tem 4 posies, verifique a representao da estrutura na Ilustrao 40:
matr
matr
matr
matr
media
media
media
media
1 2 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
int main()
{
int lin;
struct pauta
{
int matr;
float media;
}aluno[4];
printf(...LOOP - SOLICITANDO OS DADOS...\n \n);
for(lin=0;lin<4;lin++)
{
printf(Digite a matricula: );
scanf(%d, &aluno[lin].matr);
printf(Digite a media: );
scanf(%f, &aluno[lin].media);
}
printf( \n...LOOP - MOSTRANDO OS DADOS...\n \n);
for(lin=0;lin<4;lin++)
{
printf(Matricula = %d\n,aluno[lin].matr);
printf(Media = %.2f \n, aluno[lin].media);
}
system(pause);
return (0);
}
Programao I
118
Captulo 4
Estruturas(STRUCT)
Programao I
119
120
Captulo 4
Leituras complementares:
LAUREANO, Marcos Programando em C. Rio de Janeiro 2005.
SCHILDT, Herbert. C Completo e Total. So Paulo: Makron
Books , 1996.
KERNIGHAN Brian W. C Linguagem de Programao Paro
ANSI. Rio de Janeiro: Elsevier, 1989.
121
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Programao I
122
Captulo 4
123
PROCEDIMENTOS E FUNES
Ol,
O Capitulo 5 exigir mais leitura do que os outros, mas os conceitos so necessrios para o entendimento e para a aprendizagem do
contedo.
Esta a reta final.
Vamos em frente!!!!
5.1 Modularizao
uma tcnica de programao que utilizaremos para dividir um programa maior em programas menores. Os programas menores sero feitos
individualmente, at que todo o programa tenha sido desenvolvido.
Para entendermos melhor, vamos imaginar um programa para calcular
a folha de pagamento de uma empresa qualquer.
Podemos dividir esse programa em vrios programas menores. Vamos identificar quais poderiam ser os programas menores da folha
de pagamento:
CALCULAR INSS
CALCULAR DESCONTO DE FGTS
CALCULAR IRRF
CALCULAR SALRIO FAMLIA
CALCULAR FRIAS
CALCULAR SALRIO LQUIDO
IMPRIMIR CONTRA CHEQUE.
Observe que agora o programa folha de pagamento ser composto de
7 programas menores.
Utilizando a tcnica de modularizao, deixaremos o cdigo mais claro
e fcil de ser testado, j que cada programa menor poder ser desenvolProgramao I
124
Captulo 5
modularizao: programao modular, tcnica de modularizao, denota a construo de programas pela composio de partes pequenas para formar partes maiores. As partes so chamadas
mdulos. (SEBESTA, 2003, p. 123).
5.2 Funes
Sintaxe: tipo_de_retorno nome_da_funo (declarao_de_parmetros)
{
corpo_da_funo
}
O que difere um procedimento de uma funo o retorno da execuo do
bloco. Uma funo ir retornar um valor para o local onde foi chamada.
5.2.1 Entendendo Funes
Vamos trabalhar com o exemplo da folha de pagamento para entendermos melhor como funciona esse bloco de programa.
Exemplo 33: Nesse exemplo vamos fazer o programa apenas do clculo
do INSS.
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
linha
1
2
3
4
5
6
7
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
/*DECLARANDO A FUNCAO*/
float CALCULAR_INSS (float salario)
{
float sal_liq;
sal_liq= salario - (salario*0.08);
return(sal_liq); }
//INICIANDO O PROGRAMA PRINCIPAL
int main(){
float salario_bruto, salario_novo;
printf (Digite o salario do fucionario:);
scanf (%f,&salario_bruto);
salario_novo = CALCULAR_INSS(salario_bruto);
125
Procedimentos e Funes
linha 15
linha 16
linha 17
Programao I
126
Captulo 5
5.3 Procedimentos
Como a funo, o procedimento um bloco de programas, porm ele
no retornar nenhum valor.
Na Linguagem C,
procedimento.
#include <stdio.h>
linha 2
linha 3
linha 4
linha 5
float sal_liq;
sal_liq= salario - (salario*0.08);
127
Procedimentos e Funes
linha 6
return(sal_liq);
linha 7
linha 8
linha 9
linha 10 {
float salario_novo;
linha 11
salario_novo = CALCULAR_INSS(salario);
linha 12
linha 13 }
linha 17
linha 18
scanf (%f,&salario_bruto);
linha 19
MOSTRAR(salario_bruto);
linha 20
system(PAUSE);
linha 21
return 0;
linha 22 }
128
Captulo 5
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
129
Procedimentos e Funes
escopo de variveis: O escopo o conjunto de regras que determinam o uso e a validade de variveis nas diversas partes do programa. (BRIAN, 1978, p.35).
130
Captulo 5
Pela Ilustrao 44 poderemos verificar que, mesmo que os valores tenham sido alterados dentro da funo SOMA, no programa principal
eles ficaram inalterados.
131
Procedimentos e Funes
Na Ilustrao 45 poderemos verificar que somente os valores das variveis num1 e num2 foram alterados fora da funo SOMA( ), isso
porque a passagem dessas duas variveis foram feitas por referncia.
A varivel num3, como foi passada por valor, s teve o seu valor alterado dentro da funo SOMA( ).
Programao I
132
Captulo 5
parmetro: o termo parmetro muitas vezes utilizado como sinnimo de argumento, mas geralmente utiliza-se parmetros quando
se faz referncia s variveis situadas na assinatura de um mtodo
ou funo e argumentos aos valores atribudos a esses parmetros.
(BRIAN, 1978, p.25).
passagem de parmetro por referncia: a mudana do valor de
um parmetro dentro de uma funo afeta o valor da varivel original. (BRIAN, 1978, p.26).
passagem de parmetro por valor: Alteraes no parmetro no
afetam a varivel externa. (BRIAN, 1978, p.26).
50. Crie um programa que usando uma sub_rotina de funo retorne o valor da diviso de dois nmeros inteiros para o programa principal e mostre o resultado.
FUNO MAIN pedir os dois nmeros inteiro, chamar a
funo DIVISAO e exibir o resultado.
FUNO DIVISAO dividir os nmeros e retornar o valor da
diviso para main( ). ___________________________________
___________________________________________________
Tecnologia em Anlise e Desenvolvimento de Sistemas
133
Procedimentos e Funes
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
_______.____________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
51. Criar um programa que receba um nmero que corresponda
a um ms do 1 trimestre e escreva o ms correspondente; caso o
usurio digite o numero fora do intervalo dever aparecer uma
mensagem informando que o nmero invlido. O programa dever ser executado enquanto o usurio quiser.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
52. Criar um programa que apresente um menu de selees no
programa principal. Esse menu dever dar ao usurio a possibilidade de escolher uma entre quatro operaes aritmtica. Escolhida a opo desejada, dever ser solicitada a entrada de dois
nmeros. Processada a operao o resultado dever ser exibido. O
programa dever ser executado enquanto o usurio quiser.
Programao I
134
Captulo 5
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
135
Procedimentos e Funes
Programao I
136
Captulo 5
137
Procedimentos e Funes
Programao I
138
Captulo 5
139
Programao I