Sie sind auf Seite 1von 84

Universidade de Mogi das Cruzes

Computao
Profa. MSc. Viviane Guimares Ribeiro

Mogi das Cruzes, SP 2012

Sumrio
APRESENTAO DA DISCIPLINA ...................................................................................................... 4 EMENTA ................................................................................................................................................... 4 OBJETIVO DA DISCIPLINA ......................................................................................................................... 4 TPICOS DO SEMESTRE ............................................................................................................................ 4 METODOLOGIA ......................................................................................................................................... 4 AVALIAO.............................................................................................................................................. 4 DATAS IMPORTANTES............................................................................................................................... 5 BIBLIOGRAFIA BSICA ............................................................................................................................. 5 BIBLIOGRAFIA COMPLEMENTAR .............................................................................................................. 5 1. INTRODUO LGICA ................................................................................................................ 6 2. ALGORITMOS ...................................................................................................................................... 9 2.1. FORMAS DE REPRESENTAO DE UM ALGORITMO ........................................................................... 10 3. FLUXOGRAMA .................................................................................................................................. 11 4. PSEUDOCDIGO ............................................................................................................................... 16 5. LINGUAGEM C................................................................................................................................... 20 5.1. BREVE HISTRICO ........................................................................................................................... 20 5.2. AMBIENTE DE DESENVOLVIMENTO.................................................................................................. 20 5.3. TIPOS DE DADOS .............................................................................................................................. 22 5.4. DECLARAO DE VARIVEIS .......................................................................................................... 22 5.5. OPERADORES ................................................................................................................................... 23 5.5.1. Atribuio ............................................................................................................................... 23 5.5.2. Aritmticos .............................................................................................................................. 23 5.5.3. Incremento e Decremento ....................................................................................................... 24 5.5.4. Aritmtico de Atribuio ......................................................................................................... 24 5.5.5. Relacionais.............................................................................................................................. 24 5.5.6. Lgicos - && - E..................................................................................................................... 24 5.5.7. Lgicos - || - OU ..................................................................................................................... 25 5.5.8. Lgicos - ! NO ................................................................................................................... 25 5.5.9. Condicional Ternrio.............................................................................................................. 25 5.5.10. Tabela de Precedncia .......................................................................................................... 25 6. ESTRUTURA SEQUENCIAL ............................................................................................................ 26 6.1. SADA DE DADOS ............................................................................................................................. 26 7.1.1. printf() ..................................................................................................................................... 26 6.1.2. puts() ....................................................................................................................................... 30 6.1.3. putchar() ................................................................................................................................. 32 6.2. ENTRADA DE DADOS ....................................................................................................................... 34 6.2.1. scanf() ..................................................................................................................................... 34 6.2.2. gets() ....................................................................................................................................... 36 6.2.3. getchar().................................................................................................................................. 37 6.2.4. getche() ................................................................................................................................... 38 6.2.5. getch() ..................................................................................................................................... 40 7. ESTRUTURA DE DECISO .............................................................................................................. 45 7.1. IF() ................................................................................................................................................... 45 7.2. IF() ELSE .......................................................................................................................................... 47 7.3. ENCADEAMENTO DE IF() .................................................................................................................. 50 7.4. SWITCH() ......................................................................................................................................... 53 8. ESTRUTURA DE REPETIO ........................................................................................................ 67 8.1. FOR() ............................................................................................................................................... 67 8.2. WHILE() ........................................................................................................................................... 73 8.3. DO... WHILE() ................................................................................................................................... 76

8.4. COMANDO BREAK ........................................................................................................................... 78 8.5. COMANDO CONTINUE ...................................................................................................................... 79 APNDICE A BIBLIOTECAS ............................................................................................................ 82 APNDICE B - FUNES MATEMTICAS ..................................................................................... 83 APNDICE C PALAVRAS RESERVADAS NA LING. C ............................................................... 84

Engenharia Eltrica - Computao

Apresentao da Disciplina
Nome da Disciplina: Computao Professora MSc. Viviane Guimares Ribeiro E-mail: viviane_umc@yahoo.com.br

Ementa
Conceitos de algoritmo, programao estruturada utilizando a Linguagem C e tcnicas de programao estruturada.

Objetivo da Disciplina
Ao final do semestre letivo o aluno dever ter as habilidades, os conhecimentos e as competncias em informtica necessrias para que possa utilizar o computador como ferramenta na vida acadmica e profissional. Alm disso, o aluno dever ter conhecimento em conceitos bsicos de programao estruturada.

Tpicos do Semestre
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) 16) 17) 18) Algoritmo e Programao Estruturada: Conceitos Representao de Algoritmos: Descrio Narrativa Representao de Algoritmos: Fluxograma Representao de Algoritmos: Pseudocdigo / Portugus Estruturado / Portugol Estruturas de Controle: Sequencial Estruturas de Controle: Deciso Simples e Composta Estruturas de Controle: Deciso Encadeada e Multipla Escolha Estrutura de Repetio com Varivel de Controle Estrutura de Repetio com Teste no Incio e no Fim Linguagem C: Conceitos Linguagem C: Comandos de Entrada e Sada Linguagem C: Comando de Deciso Simples e Composta - if Linguagem C: Comando de Deciso de Mltipla Escolha - switch Linguagem C: Comando de Repetio - for Linguagem C: Comando de Repetio - while Linguagem C: Comando de Repetio - do.. while Linguagem C: Uso dos comandos break e continue Linguagem C: Vetores e MatrizesIntroduo Lgica

Metodologia
Aulas expositivas e prticas com acompanhamento dos alunos nos computadores. Exerccios de fixao.

Avaliao
M1 = P1(70%) + AP(20%) + Listas(10%) ND = P1(70%) + AP(20%) + Listas(10%) M2 = 0,7*ND + 0,3*PI

Profa. MSc. Viviane Guimares Ribeiro

Engenharia Eltrica - Computao


MS = (M1+M2*2)/3

Onde: P1 e P2 so provas individuais agendadas. AP so as atividades prticas realizadas em sala (sem a necessidade de agendamento prvio) ou em casa. PI nota da Prova Integrada (conforme instruo normativa UMC 002/2010). Listas exerccios individuais realizados em casa entregues em datas prestabelecidas.

Datas Importantes
P1 02/10 P2 04/12 Recuperao 18/12 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. BOENTE, Alfredo, Aprendendo a programar em linguagem C do bsico ao avanado, Brasport, Rio de Janeiro, 2003. PEREIRA, Silvio do Lago, Algoritmo e Lgica de Programao em C: uma abordagem didtica, Editora rica, So Paulo, 2010.

Bibliografia Complementar
SCHILDT, Herbert, C completo e total, Pearson Makron Books, So Paulo, 2004. 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. CHILDT, Herbert, Linguagem C: Guia do usurio, McGraw-Hill, So Paulo, 1986.

Profa. MSc. Viviane Guimares Ribeiro

Engenharia Eltrica - Computao

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

Profa. MSc. Viviane Guimares Ribeiro

Engenharia Eltrica - Computao


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. Sabe-se que existem pessoas desonestas e que existem corruptos. Admitindo-se verdadeira a frase Todos os corruptos so desonestos, correto concluir que: a. quem no corrupto honesto. b. existem corruptos honestos. c. alguns honestos podem ser corruptos. d. existem mais corruptos do que honestos. e. existem desonestos que so corruptos. 3. Se verdade que Alguns A so R e que Nenhum G R, ento necessariamente verdadeiro que: a. algum A no G. b. algum A G. c. nenhum A G. d. algum G A. e. nenhum G A. 4. Em uma comunidade, todo trabalhador responsvel. Todo artista, se no for filsofo, ou trabalhador ou poeta. Ora, no h filsofo e no h poeta que no seja responsvel. Portanto, tem-se que, necessariamente: a. todo responsvel artista. b. todo responsvel filsofo ou poeta.

Profa. MSc. Viviane Guimares Ribeiro

Engenharia Eltrica - Computao


c. todo artista responsvel. d. algum filsofo poeta. e. algum trabalhador filsofo. 5. 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.

Profa. MSc. Viviane Guimares Ribeiro

Engenharia Eltrica - Computao

2. Algoritmos
Um algoritmo uma sequncia de aes finitas encadeadas e lgicas 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

Entrada: so os dados necessrios para o inicio do processamento. Processamento: so procedimentos que utilizam os dados de entrada para chegar ao resultado final. Sada: so os dados j processados. A figura a baixo faz uma analogia entre o processamento computacional e o humano.

Profa. MSc. Viviane Guimares Ribeiro

Engenharia Eltrica - Computao

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

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.

Profa. MSc. Viviane Guimares Ribeiro

10

Engenharia Eltrica - Computao

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

Fluxo de Dados

ou Entrada de dados

ou

Sada de dados ou

Atribuio

Conector

Profa. MSc. Viviane Guimares Ribeiro

11

Engenharia Eltrica - Computao

Se

Escolha

Deciso

Profa. MSc. Viviane Guimares Ribeiro

12

Engenharia Eltrica - Computao

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.

Profa. MSc. Viviane Guimares Ribeiro

13

Engenharia Eltrica - Computao


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.

Profa. MSc. Viviane Guimares Ribeiro

14

Engenharia Eltrica - Computao


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.

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 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.

Profa. MSc. Viviane Guimares Ribeiro

15

Engenharia Eltrica - Computao

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 8 8 2 bytes = 2 x 2 = 65.536 possibilidades (-32.768 32.767). 4 bytes = 2 x 2 x 2 x 2 = 4.294.967.296 possibilidades (-3,4E-38 +3,4E+38). 1 byte para cada caracter necessrio.
8 8 8 8

real

literal

Profa. MSc. Viviane Guimares Ribeiro

16

Engenharia Eltrica - Computao

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>);

Atribuio

<varivel> <valor>; Se Se (<condio>) Ento <Comando 1>; Seno <Comando 2>; Fim_Se Escolha

Deciso

Escolha (<varivel>) Caso <valor_1>: <Comando 1>; Caso <valor_2>: <Comando 2>; ..... Caso <valor_n>: <Comando n>; Seno <Comando n + 1>; Fim_Escolha

Profa. MSc. Viviane Guimares Ribeiro

17

Engenharia Eltrica - Computao

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.0 abc .F. -0.0 +36 -1

0.7845 +35987 .V. .F. 32 32.0

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: _________________________________

Profa. MSc. Viviane Guimares Ribeiro

18

Engenharia Eltrica - Computao

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.

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) ).

Profa. MSc. Viviane Guimares Ribeiro

19

Engenharia Eltrica - Computao

5. Linguagem C
Para que um computador possa desempenhar uma tarefa necessrio que esta seja detalha passo a passo, numa forma compreensvel pela mquina, utilizando aquilo que se chama de programa. Neste sentido, um programa nada mais que um algoritmo escrito numa forma compreensvel pelo computador. Um programa pode ser escrito em diversas linguagens de programao, como por exemplo: Pascal, Fortran, COBOL, Clipper, Basic, C, etc. Durante este semestre iremos estudar a linguagem C.

5.1. Breve Histrico


O C uma linguagem de programao genrica que utilizada para a criao de programas diversos como: processadores de texto, planilhas eletrnicas, sistemas operacionais, programas de comunicao, programas para automao industrial, gerenciadores de banco de dados, programas de projetos assistidos por computador, programas de soluo de problemas da Engenharia, Fsica, Qumica e outras cincias.
As instrues da Linguagem C consistem de termos semelhantes a expresses algbricas, acrescidas de certas palavras chave em ingls. C foi desenvolvida a partir de duas linguagens anteriores, a BCPL e B, criadas no final da dcada de 60. Ambas as linguagens eram definidas sem tipo, ou seja, qualquer dado ocupava um mesmo espao na memria. A linguagem C foi criada por Dennis Ritchie e Ken Thompson, em 1972, no centro de pesquisa da Bell Laboratories. Sua primeira utilizao importante foi a reescrita do sistema Unix. Em meados da dcada de 70, o Unix foi liberado para utilizao nas universidades, dando o impulso para o sucesso da linguagem. ANSI C (American National Standards Institute) a verso da linguagem C padronizada em 1989 nos EUA como tambm no mundo atravs da International Standards Organization ISO. C++ uma linguagem derivada da linguagem C. O conjunto de instrues que fazem parte da linguagem C tambm parte de C++. Os elementos principais que foram adicionados linguagem C para dar origem a C++ consistem na ideia de programao orientada ao objetos. Qualquer programa em C compilado no padro ANSI tambm pode ser compilado em C++, ou seja, C e C++ so compatveis.

5.2. Ambiente de Desenvolvimento


Um compilador, tambm chamado de ambiente de desenvolvimento, um programa que interpreta os comandos escritos em uma linguagem de programao e os converte em uma forma que o computador seja capas de executar. Em geral, h vrios compiladores diferentes para uma mesma linguagem de programao. Como exemplo de compiladores para a linguagem C, podemos citar o Turbo C (proprietrio), o DEV C (gratuito) e o Pelles C 1 (gratuito). No decorrer deste semestre, utilizaremos o ambiente de desenvolvimento Pelles C .

5.2.1 Criao de programas utilizando o Pelles C


Para desenvolver um programa usando o compilador Pelles C for Windows, voc deve, para cada programa, proceder da seguinte forma: 1 passo: inicie a execuo do programa Pelles C; New Project. 2 passo: no menu desse programa, selecione a opo File
1

O compilador Pelles C for Windows pode ser obtido gratuitamente em www.smorgasbordet.com/pellesc

Profa. MSc. Viviane Guimares Ribeiro

20

Engenharia Eltrica - Computao


3 passo: na janela New Projects, selecione Win32 Console program (EXE), digite o nome de projeto e clique no boto OK. 4 passo: no menu, selecione a opo File New Source code. 5 passo: digite o programa em linguagem C. 6 passo: no menu, selecione a opo File Save as, digite o nome do programa (que pode ser o mesmo dado ao projeto) e clique no boto Salvar. 7 passo: clique no boto Sim, da caixa que apresenta a pergunta Do you want to add the file ... to the current Project? . 8 passo: no menu, clique no boto Execute ( ).

Figura 1- Tela de digitao do programa

Figura 2 - Tela de execuo do programa

Profa. MSc. Viviane Guimares Ribeiro

21

Engenharia Eltrica - Computao

5.3. Tipos de dados


Tipo de Dado char int Quantidade de Byte 1 2 Descrio Armazena caracteres alfanumricos utilizado para armazenar nmeros inteiros negativos e positivos Armazena nmeros com casas decimais (nmeros reais) Armazena nmeros com casas decimais (nmeros reais) utilizado como retorno de funes e tipo de ponteiros Valor booleano. Pode assumir um dos dois valores: true ou false NOTA: esse um tipo que foi adicionado recentemente pelo padro ANSI-C++. Nem todos os compiladores suportam-no. Faixa de Abrangncia -127 a 127 -32.767 a 32.767 Seis dgitos de preciso Dez dgitos de preciso true ou false Equivalente em Algoritmo literal inteiro

float double void bool

4 8 1 1

real real lgico

5.4. Declarao de Variveis


Um programa em linguagem C no funciona se voc no declarar suas variveis. As variveis so declaradas em qualquer lugar do programa, desde que antes de serem utilizadas. Uma declarao de varivel consiste no nome de um tipo seguido do nome da varivel (identificador), seguido de ponto-e-vrgula. Por exemplo: int contador; float acumulador; Inicializar uma varivel significa atribuir um valor a ela na mesma instruo de sua declarao. Utiliza-se o operador de atribuio (=) para a definio do valor inicial. Exemplo: int contador = 0; float tempo = 30.00; Voc pode usar quantos caracteres quiser para um nome de varivel, sendo o primeiro caractere obrigatoriamente uma letra ou o sublinhado. Somente os 32 primeiros caracteres de um nome de varivel so significativos e no permitido o uso de uma palavra-chave da linguagem. Em C, letras maisculas e minsculas so diferentes. Exemplo de um programa com definio de variveis:

Profa. MSc. Viviane Guimares Ribeiro

22

Engenharia Eltrica - Computao

Figura 3 - Cdigo fonte. Exemplo de declarao de variveis.

Figura 4 - Tela produzida pelo programa da figura 3.

5.5. Operadores
Um operador um smbolo usado para criar expresses, a partir de constantes e variveis.

5.5.1. Atribuio
o sinal de igual (=). Atribui a expresso da direita varivel sua esquerda. Em C podem ocorrer atribuies mltiplas. Operao Atribuio Ex.: y = 3; y = x = 3; y = ( x = 3 ); Algoritmo Linguagem C =

5.5.2. Aritmticos
Existem operadores denominados binrios (trabalham com dois operandos) e unrios (funcionam com um operando).

Profa. MSc. Viviane Guimares Ribeiro

23

Engenharia Eltrica - Computao


Operadores aritmticos binrios Operao Soma Subtrao Multiplicao Diviso inteira Diviso real Resto da diviso inteira Algoritmo + * div / mod Linguagem C + * / / %

Operadores aritmticos unrios Operao Menos unitrio (mult. o valor ou varivel por -1) Algoritmo Linguagem C -

5.5.3. Incremento e Decremento


Incrementam (++) ou decrementam () a varivel operando de 1. Podem ser prefixado ou ps- fixado. Ex.: x = x + 1; ++ x; ou x++; adiciona 1 a x

5.5.4. Aritmtico de Atribuio


Combinam operaes aritmticas com atribuies. Compactam as operaes. Segue a regra: varivel operao= expresso Ex.: i += 2; equivale a i = i + 2 x *= y + 1; equivale a x = x * (y + 1) t /= 2.5; equivale a t = t/2.5 p %= 5; equivale a p = p % 5

5.5.5. Relacionais
Operao Maior Maior ou igual Menor Menor ou igual Igual Diferente Algoritmo > >= < <= = <> Linguagem C > >= < <= == !=

Os operadores relacionais tm precedncia menor que os aritmticos.

5.5.6. Lgicos - && - E


Resulta 1 (V) somente se as duas expresses forem verdadeiras. A 0 0 1 1 B 0 1 0 1 Algoritmo AeB 0 0 0 1 Linguagem C A&&B 0 0 0 1

Profa. MSc. Viviane Guimares Ribeiro

24

Engenharia Eltrica - Computao

5.5.7. Lgicos - || - OU
Resulta 0 (F) somente se as duas expresses forem falsas. A 0 0 1 1 B 0 1 0 1 Algoritmo A ou B 0 1 1 1 Linguagem C A||B 0 1 1 1

5.5.8. Lgicos - ! NO
Resulta 1 (V) somente se a expresso for falsa. A 0 0 1 1 B 0 1 0 1 Algoritmo no A no B 1 1 1 0 0 1 0 0 Linguagem C !A !B 1 1 1 0 0 1 0 0

5.5.9. Condicional Ternrio


o nico que opera sobre trs expresses. exp1 ? exp2 : exp3; A exp1 avaliada primeiro. Se for verdadeira, exp2 avaliada e seu resultado o valor da expresso como um todo. Se exp1 for zero (falso), exp3 avaliada e ser o valor da expresso condicional. Ex: max = (a > b)?a : b; Neste exemplo a varivel que contm o maior valor numrico entre a e b ser atribuda a max.

5.5.10. Tabela de Precedncia


O nvel de precedncia dos operadores avaliado da esquerda para a direita. Os parnteses podem ser utilizados para alterar essa ordem, sendo indicado seu uso a fim de tornar o programa (a expresso) mais legvel. A tabela abaixo mostra a precedncia dos operadores vistos at agora.

Maior

Menor

() !, ++, --, -(unrio) *, /, % +, ==, != && || ?: +=, -=, *=, /=

Profa. MSc. Viviane Guimares Ribeiro

25

Engenharia Eltrica - Computao

6. Estrutura Sequencial
As operaes de entrada e sada de dados permitem a interao de um programa e/ou algoritmo com o usurio, seja permitindo que o mesmo digite valores (entrada de dados) ou exibindo informaes (sada de dados). Estas operaes so representadas tanto em algoritmos (fluxograma e pseudocdigo) quanto em linguagem C.

6.1. Sada de Dados


Esta operao permite que o programa exiba mensagens ou valores de variveis, atravs do monitor. Fluxograma Pseudocdigo

Escreva (Boa noite);

Escreva (x);

Escreva (Soma: , s);

Em linguagem C, existem 3 funes (comandos) diferentes que permitem a sada de dados: printf(), puts() e putchar().

7.1.1. printf()
O printf() uma funo utilizada para sada de informaes. a funo mais genrica de sada de dados, pois pode ser usado em qualquer situao. A funo printf() requer a utilizao dos cdigos de formatao de tipos de variveis. Cdigo printf() %c %d %e %f %g %o %s %u %x %% Formato Apenas um caracter. Decimal inteiro. Notao cientfica. Ponto flutuante float ou double. %e ou %f (o mais curto). Octal. Cadeia de caracteres String. Decimal sem sinal. Hexadecimal. Coloca na tela um %

Alm dos cdigos de formatao a funo printf() permite a utilizao de cdigos especiais para a exibio de caracteres especficos.

Profa. MSc. Viviane Guimares Ribeiro

26

Engenharia Eltrica - Computao

Cdigos especiais \n \t \b \ \ \\ \f \0 \x \a

Significado Nova linha. Tab. Retrocesso. Aspas. Apstrofo. Barra invertida. Salta pgina de formulrio. Nulo. Mostra caracter hexadecimal. Produz o som de um beep.

Exemplo 1: Fluxograma Algoritmo Algoritmo Exemplo1; Var x: inteiro; Inicio x 2; Escreva (Tenho ,x, irmos.); Fim

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

27

Engenharia Eltrica - Computao


Exemplo 2: Fluxograma Algoritmo Algoritmo Exemplo2; Inicio Escreva (Juan tem 25 anos de idade.); Fim

Linguagem C

Tela

Exemplo 3: Fluxograma Algoritmo Algoritmo Exemplo3; Inicio Escreva (A letra j ); Escreva (pronuncia-se jota); Fim

Profa. MSc. Viviane Guimares Ribeiro

28

Engenharia Eltrica - Computao

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

29

Engenharia Eltrica - Computao

6.1.2. puts()
Representa a sada de uma nica literal por vez, seguida do caracter de nova linha, ou seja, a funo muda de linha automaticamente sem que haja a necessidade do pressionamento da tecla de entrada de dados, ENTER.

Exemplo 4: Fluxograma Algoritmo Algoritmo Exemplo4; Inicio Escreva (Gabriel); Fim

Linguagem C

Tela

Exemplo 5: Fluxograma Algoritmo Algoritmo Exemplo5; Inicio Escreva (Digite seu nome); Fim

Profa. MSc. Viviane Guimares Ribeiro

30

Engenharia Eltrica - Computao

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

31

Engenharia Eltrica - Computao

6.1.3. putchar()
Representa a sada de apenas um caracter na tela do computador e no acrescenta uma nova linha automaticamente. As duas instrues seguintes so equivalentes. putchar(w); printf(%c, w); Exemplo6: Fluxograma Algoritmo Algoritmo Exemplo6; Inicio Escreva (A primeira letra ); Escreva (do alfabeto ... ); Escreva (a); Fim

Linguagem C

Profa. MSc. Viviane Guimares Ribeiro

32

Engenharia Eltrica - Computao

Tela

Neste exemplo foi utilizada a biblioteca <conio.h> que permite ao programador usar a funo clrscr() para limpar a tela do computador e a funo gotoxy(COL,LIN) para posicionar o cursor em um ponto de coluna e linha na tela do computador. Note que, segundo a conveno adotada pelo compilador Pelles C, todas as funes que no so padro em C tm seus nomes iniciados com um caracter de sublinha ( _ ).

Profa. MSc. Viviane Guimares Ribeiro

33

Engenharia Eltrica - Computao

6.2. Entrada de Dados


Esta operao permite que o usurio fornea dados ao programa, atravs de sua interao com o teclado. Fluxograma Pseudocdigo

Leia (x);

Leia (n1, n2);

Leia (nome);

Em linguagem C, existem 5 funes (comandos) diferentes que permitem a entrada de dados: scanf(), gets(), getchar(), getche() e getch().

6.2.1. scanf()
utilizada para permitir ao usurio realizar uma entrada de dados, geralmente atravs do teclado. Assim como a funo printf() requer a utilizao dos cdigos de formatao de tipos de variveis. Cdigo printf() %c %d %e %f %g %o %s %u %x Formato Apenas um caracter. Decimal inteiro. Notao cientfica. Ponto flutuante float ou double. %e ou %f (o mais curto). Octal. Cadeia de caracteres. Decimal sem sinal. Hexadecimal.

Profa. MSc. Viviane Guimares Ribeiro

34

Engenharia Eltrica - Computao


Exemplo 7: Fluxograma Algoritmo Algoritmo Soma; Var a, b, soma: inteiro; Inicio Escreva (Entre com dois nmeros: ); Leia (a,b); soma a + b; Escreva (Soma= , soma); Fim

Linguagem C

Tela

Na funo scanf() utiliza-se o & antes de cada varivel para indicar o endereo de memria no qual o contedo da varivel estar armazenado. Este de uso obrigatrio quando tratamos variveis do tipo numrico (inteira ou real).

Profa. MSc. Viviane Guimares Ribeiro

35

Engenharia Eltrica - Computao

6.2.2. gets()
Essa funo processa tudo que foi digitado at que a tecla ENTER seja pressionada. O caracter ENTER no acrescentado literal, mas sim identificada como trmino da mesa. Exemplo 8: Fluxograma Algoritmo Algoritmo Nome; Var nome: literal[35]; Inicio Escreva (Digite seu nome: ); Leia (nome); Escreva (Como vai , nome); Fim

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

36

Engenharia Eltrica - Computao

6.2.3. getchar()
Essa funo utilizada quando queremos efetuar a entrada de apenas um caracter, no dispensando a necessidade de se pressionar a tecla ENTER para finalizar. Exemplo 9: Fluxograma Algoritmo Algoritmo Tecla1; Var ch: literal[1]; Inicio Escreva (Digite uma tecla: ); Leia (ch); Escreva (A tecla que voc pressionou foi , ch); Fim

Linguagem C

Profa. MSc. Viviane Guimares Ribeiro

37

Engenharia Eltrica - Computao

Tela

6.2.4. getche()
Essa funo edita um caracter do teclado e permite que ele seja mostrado na tela do computador. dispensvel o pressionamento da tecla ENTER por parte do usurio. Isso j ocorre de forma automtica. Exemplo 10: Fluxograma Algoritmo Algoritmo Tecla1; Var ch: literal[1]; Inicio Escreva (Digite uma tecla: ); Leia (ch); Escreva (A tecla que voc pressionou foi , ch); Fim

Linguagem C

Profa. MSc. Viviane Guimares Ribeiro

38

Engenharia Eltrica - Computao

Tela

Profa. MSc. Viviane Guimares Ribeiro

39

Engenharia Eltrica - Computao

6.2.5. getch()
Essa funo permite que o usurio fornea um caracter atravs do teclado. Este caracter no ser mostrado na tela do computador. Tambm dispensvel o pressionamento da tecla ENTER. Esta funo tambm atende necessidade como recurso de parada temporria da execuo do programa. Exemplo 11: Fluxograma Algoritmo Algoritmo Tecla1; Var ch: literal[1]; Inicio Escreva (Digite uma tecla: ); Leia (ch); Escreva (A tecla que voc pressionou foi , ch); Escreva (A funo getch() causou uma pausa no programa.); Fim

Linguagem C

Profa. MSc. Viviane Guimares Ribeiro

40

Engenharia Eltrica - Computao

Tela

Profa. MSc. Viviane Guimares Ribeiro

41

Engenharia Eltrica - Computao

Exerccios
1. Observe o fluxograma abaixo e escreve o pseudocdigo equivalente.

2. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C para calcular o valor de y como funo de x, segundo a funo y(x)=3x+2, em um domnio real. 3. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que calcule o consumo mdio de um automvel (medido em km/l), dado que so conhecidos a distncia total percorrida e o volume de combustvel consumido para percorr-la (medido em litros). 4. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C para calcular o quadrado de um nmero inteiro. 5. Considerando o programa abaixo execute a simulao (teste de mesa), preenchendo a tabela conforme os valores de entrada lanados em cada linha. X 2 5 1 10 Y 5 8 12 4 F

#include <stdio.h> main() { float X, Y, F; printf ("Entre com o valor de x: "); scanf ("%f", &X); printf ("Entre com o valor de y: "); scanf ("%f", &Y); F = (2 * X) + 3 * (Y * Y); printf ("Funcao = %.2f\n", F); }

Profa. MSc. Viviane Guimares Ribeiro

42

Engenharia Eltrica - Computao


6. Observe a figura abaixo e marque um X no programa que cria a tela apresentada.

a) ( ) #include<stdio.h> main(){ float c, l, p, t; printf("Medidas? "); scanf("%d %d", &l, &c); printf("Preco m2? "); scanf("%d",&p); t = c*l*p; printf("Custo total R$ %.2d\n",t); } c) ( ) #include<stdio.h> main(){ float c, l, p, t; printf("Medidas? "); scanf("%f %f", &l, &c); printf("Preco m2? "); scanf("%f",&p); t = c*l*p; printf("Custo total R$ %.2f\n",t); }

b) ( ) #include<stdio.h> main(){ int c, l, p, t; printf("Medidas? "); scanf("%f %f", &l, &c); printf("Preco m2? "); scanf("%f",&p); t = c*l*p; printf("Custo total R$ %.2f\n",t); } d) ( ) #include<stdio.h> main(){ float c, l, p, t; printf("Medidas? "); scanf("%f %f", l, c); printf("Preco m2? "); scanf("%f",&p); t = c*l*p; printf("Custo total R$ %.2d\n",t); }

7. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que leia o saldo de uma aplicao e imprimir o novo saldo, considerando um reajuste de 15%. 8. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que receba o salrio de um funcionrio e o percentual de aumento, calcule e mostre o valor do aumento e o novo salrio. 9. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que calcule 2 e mostre a rea de um circulo. Sabe-se que: R . 10. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que receba o ano de nascimento de uma pessoa e o ano atual, calcule e mostre: - A idade desta pessoa hoje; - A idade desta pessoa em 2015. 11. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que converta segundos em minutos e segundos. Por exemplo, 252 segundos equivalem a 4 minutos e 12 segundos.

Profa. MSc. Viviane Guimares Ribeiro

43

Engenharia Eltrica - Computao


12. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que dados dois lados de um tringulo retngulo calcule e exiba a respectiva hipotenusa 13. Faa um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que receba o nmero de horas trabalhadas e o valor do salrio mnimo. Calcule e mostre o salrio a receber seguindo as regras abaixo: a. o valor da hora trabalhada vale a metade do salrio mnimo; b. o salrio bruto equivale ao nmero de horas trabalhadas multiplicado pelo valor da hora trabalhada; c. o imposto equivale a 3% do salrio bruto; d. o salrio a receber equivale ao salrio bruto menos o imposto. 14. Dado o Fluxograma abaixo, indique o programa em linguagem C correto.

A) ( ) #include<stdio.h> main() { float a,b; printf(Digite um nmero: ); scanf(%f, &a); a = a % 100; printf(%f,b); } B) ( ) #include<stdio.h> main() { int a,b; printf(Digite um nmero: ); scanf(%d, a); a = a % 100; printf(%d,b); } C) ( ) #include<stdio.h> main() { int a,b; printf("Digite um numero: "); scanf("%d", &a); b = a % 100; printf("%d",b); }

Profa. MSc. Viviane Guimares Ribeiro

44

Engenharia Eltrica - Computao

7. Estrutura de Deciso
Neste tipo de estrutura o fluxo de instrues a ser seguido escolhido em funo do resultado da avaliao de uma ou mais condies. Uma condio uma expresso lgica. A classificao das estruturas de deciso feita de acordo com o nmero de condies que devem ser testadas para que se decida qual o caminho a ser seguido. Tm-se 2 tipos de estrutura de deciso: Se; Escolha. Em linguagem C, o equivalente ao Se a funo if() e o equivalente ao Escolha a funo switch().

7.1. if()
Nesta estrutura uma nica condio (expresso lgica) avaliada. Se o resultado desta avaliao for verdadeiro (.V.), ento um determinado conjunto de instrues (comandos compostos) executado. Caso contrrio, ou seja, quando o resultado da avaliao for falso (.F.), nada executado e o fluxo de execuo segue para o primeiro comando aps o fim da estrutura. Fluxograma

Pseudocdigo Se (condio) Ento Comando 1; Fim_Se Linguagem C if (condio) { Comando 1; }

Profa. MSc. Viviane Guimares Ribeiro

45

Engenharia Eltrica - Computao


Exemplo 1: Fluxograma Algoritmo Algoritmo Exemplo1; Var a: inteiro; Inicio Escreva (Entre com o valor de A: ); Leia (a); Se (a<0) ento Escreva (O valor de A menor que zero); Fim_Se Fim

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

46

Engenharia Eltrica - Computao

7.2. if() else


Nesta estrutura uma nica condio (expresso lgica) avaliada. Se o resultado desta avaliao for verdadeiro (.V.), ento um determinado conjunto de instrues (comandos compostos) executado. Caso contrrio, ou seja, quando o resultado da avaliao for falso (.F.), um comando diferente executado. Aps a execuo de uma das partes (verdadeira ou falsa) o fluxo de execuo segue para o primeiro comando aps o fim da estrutura. Fluxograma

Pseudocdigo Se (condio) Ento Comando 1; Seno Comando 2; Fim_Se Linguagem C if (condio) { Comando 1; } else { Comando 2; }

Profa. MSc. Viviane Guimares Ribeiro

47

Engenharia Eltrica- Computao

Exemplo 2: Fluxograma

Algoritmo Algoritmo Exemplo2; Var salario: real; Inicio Escreva (Entre com o salario: ); Leia (salario); Se (salrio>50000) ento Escreva (Voc ganha bem); seno Escreva (Voc precisa ganhar mais); Fim_Se Fim Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

48

Engenharia Eltrica- Computao

Profa. MSc. Viviane Guimares Ribeiro

49

Engenharia Eltrica- Computao

7.3. Encadeamento de if()


Trata-se de um recurso que permite ao usurio utilizar uma estrutura if dentro de outra obtendo, assim, diversas respostas possveis. Exemplo 3: Fluxograma

Pseudocdigo Algoritmo Encadeamento; Var num: inteiro; Inicio Escreva (Entre com um nmero: ); Leia (num); Se (num = 0) Ento Escreva (Nmero zero.); Seno Se ( num < 0) Ento Escreva (Nmero negativo.); Seno Escreva (Nmero positivo.); Fim_Se Fim_Se Fim

Profa. MSc. Viviane Guimares Ribeiro

50

Engenharia Eltrica- Computao

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

51

Engenharia Eltrica- Computao

Exerccios 1. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que pea para o usurio informar dois nmeros inteiros. Ao final do processamento, imprimir qual o maior e o menor desses nmeros. 2. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que pea para o usurio informar trs nmeros inteiros. Ordenar estes nmeros de forma crescente e apresentar o resultado na tela. 3. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C para ler um nmero real, se este nmero for negativo, transforme-o em positivo e exiba o resultado ao operador. 4. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C para ler um nmero real equivalente ao comprimento de uma pea. Verificar se o valor lido encontra-se dentro da faixa de tolerncia especificada, informando o resultado ao operador (limite especificado: 20 0,000002 cm). 5. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que efetue o clculo do reajuste de salrio de um funcionrio. Considere que o funcionrio dever receber um reajuste de 15% caso seu salrio seja menor que 500, se o salrio for maior ou igual a 500 e menor ou igual a 1000, seu reajuste ser de 10%, caso seja ainda maior que 1000, o reajuste dever ser de 5%. 6. Observe o fluxograma abaixo e escreve o programa em Linguagem C equivalente.

Profa. MSc. Viviane Guimares Ribeiro

52

Engenharia Eltrica- Computao

7. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que leia trs nmeros e se o ltimo desses nmeros for menor ou igual a 5 ento ele faz a quarta varivel receber a subtrao das duas primeiras multiplicada pela terceira, se no, receber a soma das duas primeiras multiplicada pela terceira. Apresentar na tela os trs nmeros e o resultado. 8. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que leia trs valores para os lados de um tringulo e verifique se eles formam um tringulo. Se formarem, dizer que tipo de tringulo ele : issceles, escaleno ou equiltero. 9. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que receba um nmero inteiro e mostre em qual faixa de nmeros inteiros ele aparece: a. Abaixo de 15; b. Entre 15 e 35; c. Acima de 35. 10. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que dada a idade de um nadador classifica-o em uma das seguintes categorias: Categoria Infantil A Infantil B Juvenil A Juvenil B Adulto Idade 5 - 7 anos 8 - 10 anos 11-13 anos 14-17 anos Maiores de 18 anos

7.4. switch()
A utilizao do switch oferece inmeras vantagens em relao a utilizao da estrutura ninho de ifs. Um exemplo prtico a facilidade de escrita de uma estrutura composta por mltiplas escolhas, que requer diversas alternativas, a partir de um certo programa de computador. Porm, a estrutura switch s pode ser utilizada quando estamos testando uma situao de igualdade para uma mesma varivel. Fluxograma

Profa. MSc. Viviane Guimares Ribeiro

53

Engenharia Eltrica- Computao

Pseudocdigo Escolha (varivel) Caso <valor_1> Comando 1; Caso <valor_2> Comando 2; ..... Caso <valor_n> Comando n; Seno Comando n + 1; Fim_escolha Linguagem C switch (varivel) { case valor_1: Comando 1; case valor_2: Comando 2; ....... case valor_n: Comando n; default: Comando n + 1; }

Exemplo 4: Fluxograma

Profa. MSc. Viviane Guimares Ribeiro

54

Engenharia Eltrica- Computao

Pseudocdigo Algoritmo Exemplo4; Var opcao: literal[1]; Inicio Escreva (Entre com uma letra: ); Leia (opcao); Escolha (opcao) caso A: Escreva (Letra A); caso B: Escreva (Letra B); caso C: Escreva (Letra C); caso D: Escreva (Letra D); seno: Escreva (No A, B, C nem D.); Fim_Escolha Fim Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

55

Engenharia Eltrica- Computao

Nesta estrutura opcional a utilizao da clusula default para representar uma alternativa que significa Em nenhum dos casos anteriores. Tambm importante saber que a execuo do comando switch segue os seguintes passos: 1. A expresso avaliada. 2. Se o resultado da expresso for igual a uma constante, ento a execuo comear a partir do comando associado a essa constante e prossegue com a execuo de todos os comandos at o fim do switch, ou at que se encontre uma instruo de parada denominada break. 3. Se o resultado da expresso no for igual a nenhuma das constantes e j estiver sido includa no comando switch a opo default, o comando associado ao default ser executado. Caso contrrio, isto , se a opo default no estiver presente, o processamento continuar a partir do comando seguinte ao switch. Linguagem C

Tela

Os operadores lgicos apresentados no item 6.6.6, 6.6.7 e 6.6.8 so normalmente utilizados em conjuntos com a estrutura de deciso if(). A seguir so apresentados exemplos de programas que fazem uso destes operadores.

Profa. MSc. Viviane Guimares Ribeiro

56

Engenharia Eltrica- Computao

Exemplo 5: Fluxograma

Algoritmo Algoritmo Exemplo5; Var n1,n2: inteiro; Inicio Escreva (Digite dois nmeros: ); Leia (n1,n2); Se ((n1=0)e(n2=0)) ento Escreva (Voc forneceu apenas o nmero zeros); seno Escreva (Soma= , n1+n2); Fim_Se Fim

Profa. MSc. Viviane Guimares Ribeiro

57

Engenharia Eltrica- Computao

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

58

Engenharia Eltrica- Computao

Exemplo 6: Fluxograma

Algoritmo Algoritmo Exemplo6; Var n1,n2: inteiro; Inicio Escreva (Digite dois nmeros: ); Leia (n1,n2); Se ((n1<0ou(n2<0)) ento Escreva (Pelo menos um dos nmeros negativo); seno Escreva (Voc informou apenas nmeros positivos); Fim_Se Fim

Profa. MSc. Viviane Guimares Ribeiro

59

Engenharia Eltrica- Computao

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

60

Engenharia Eltrica- Computao

Exemplo 7: Fluxograma

Algoritmo Algoritmo Exemplo7; Var n: inteiro; Inicio Escreva (Digite um nmero: ); Leia (n); Se (nao(n<>0)) ento Escreva (n, igual de zero); seno Escreva (n, diferente a zero); Fim_Se Fim

Profa. MSc. Viviane Guimares Ribeiro

61

Engenharia Eltrica- Computao

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

62

Engenharia Eltrica- Computao

Exerccios 11. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que pea para o usurio informar uma letra qualquer. No final do processamento, o programa dever informar se a letra vogal ou consoante. 12. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que leia dois nmeros fornecidos pelo usurio e uma operao matemtica (soma, subtrao, multiplicao e diviso). Efetuar a operao matemtica escolhida utilizando os nmeros fornecidos e exibir o resultado. 13. Uma agncia bancria possui dois tipos de investimentos, conforme o quadro a seguir. Faa um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que receba o tipo de investimento e o valor do investimento, calcule e mostre o valor corrigido de acordo com o tipo de investimento de todos os clientes do banco. Tipo 1 2 Descrio Poupana Fundos de renda fixa Rendimento mensal 3% 4%

14. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que receba o cdigo correspondente ao cargo de um funcionrio e mostre o cargo: Cdigo 1 2 3 4 5 Cargo Escriturrio Secretria Caixa Gerente Diretor

15. Faa um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C para calcular a conta final de um hspede de um hotel fictcio, contendo: o nome do hspede, o tipo do apartamento, o nmero de dirias utilizadas, o valor unitrio da diria, o valor total das dirias, o valor do consumo interno, o subtotal, o valor da taxa de servio e o total geral. Considere que: a. Sero lidos o nome do hspede, o tipo do apartamento utilizado (A, B, C ou D), o nmero de dirias utilizadas pelo hspede e o valor do consumo interno do hspede; b. O valor da diria determinado pela seguinte tabela: TIPO DO APTO. A B C D VALOR DA DIRIA (R$) 150,00 100,00 75,00 50,00

c. O valor total das dirias calculado pela multiplicao do nmero de dirias utilizadas pelo valor da diria; d. O subtotal calculado pela soma do valor total das dirias e o valor do consumo interno; e. O valor da taxa de servio equivale a 10% do subtotal; f. O total geral resulta da soma do subtotal com a taxa de servio.

Profa. MSc. Viviane Guimares Ribeiro

63

Engenharia Eltrica- Computao

16. Analise os trechos de fluxogramas abaixo e informe o valor que ser exibido na tela para o usurio. Considere os seguintes valores: A = 2, B = 3, C = 5, D = 9.

.no. (D>5)

(A+B)*D

(A-B) div C

Sada

(A>2) .e. (B<7)

(A+2)*(B-2)

(A+B) div D * (C+D)

Sada

Profa. MSc. Viviane Guimares Ribeiro

64

Engenharia Eltrica- Computao

(A<>2) .ou. .no. (B<7)

A+B - 7

D-C

Sada

.no. (A>2) .ou. .no.(B<>7)

D*A div C

C div (A - B)

Sada

Profa. MSc. Viviane Guimares Ribeiro

65

Engenharia Eltrica- Computao

(A = 2) .ou. (B < 7)

(A+2)*D

(A+B) div D

Sada

.no. (C >A) .e. .no.(B <= 7)

D*A

(A+B) div 2

Sada

Profa. MSc. Viviane Guimares Ribeiro

66

Engenharia Eltrica- Computao

8. Estrutura de Repetio
Essas estruturas so utilizadas para que uma parte de seu programa possa ser repetida n vezes sem a necessidade de reescrev-lo. Tambm so conhecidas como LOOP ou laos. Existem 3 estruturas de repetio na linguagem C: for (lao contado), equivalente ao Para; while (lao condicional), equivalente ao Enquanto; do... while (lao condicional), equivalente ao Repita.

8.1. for()
A ideia bsica do comando for que voc execute um conjunto de comandos, um nmero fixo de vezes, enquanto uma varivel de controle incrementada ou decrementada a cada passagem pelo loop. Fluxograma

Pseudocdigo Para <var> de <incio> at <fim> incr de <inc> faa Comando 1; Fim_para Linguagem C for ( <var> = <incio>; <condio sada> ; <inc> ) { Comando 1; }

Observe que dentro dos parnteses existem 3 expresses separadas por ponto-evirgula. A primeira expresso , normalmente, a inicializao da varivel de controle do for. A segunda expresso um teste lgico que, enquanto o resultado for verdadeiro, reflete em continuao do lao. A terceira expresso , normalmente, o incremento ou decremento da varivel de controle do for.

Profa. MSc. Viviane Guimares Ribeiro

67

Engenharia Eltrica- Computao

Exemplo 1: Fluxograma

Pseudocdigo Algoritmo Exemplo1; Var i: inteiro; Inicio Para i de 1 at 10 com incremento de 1 faa Escreva (i); Fim_Para Fim Linguagem C

Profa. MSc. Viviane Guimares Ribeiro

68

Engenharia Eltrica- Computao

Tela

Exemplo 2: Fluxograma

Pseudocdigo Algoritmo Exemplo2; Var i,j : inteiro; Inicio Para i de 1 at 10 com incremento de 1 faa Para j de 1 at 10 com incremento de 1 faa Escreva (i, x, j, =, i*j); Fim_Para Fim_Para Fim

Profa. MSc. Viviane Guimares Ribeiro

69

Engenharia Eltrica- Computao

Linguagem C

Tela

Profa. MSc. Viviane Guimares Ribeiro

70

Engenharia Eltrica- Computao

Veja, neste exemplo, que o lao externo(i) executa 10 vezes, enquanto o lao interno(j) executa 10 vezes para cada passagem do lao externo, totalizando assim, 10x10 = 100 vezes.

Profa. MSc. Viviane Guimares Ribeiro

71

Engenharia Eltrica- Computao

Exerccios 1. Considerando o fluxograma abaixo execute a simulao (teste de mesa), preenchendo a tabela conforme os valores de entrada lanados em cada linha. ant atual i prox

2. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, que imprima todos os nmeros inteiro existentes entre 1 e 20 em ordem crescente. Utilize a estrutura Para. 3. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, que leia um nmero N atravs do teclado e, em seguida, calcule e imprima a soma de 1 at N. Utilize a estrutura for. 4. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, para ler 10 nmeros e imprimir o quadrado de cada nmero. Utilize a estrutura for. 5. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, para ler o nmero de matrcula e 4 notas de sete alunos, calcular a sua mdia aritmtica e imprimir o nmero de matricula do aluno, as 4 notas, a sua mdia e imprimir Reprovado se a mdia for menor que 3, Exame se 3 <= mdia < 7 e Aprovado se mdia =>7. Utilize a estrutura for. 6. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, para calcular o imposto de renda de 10 contribuintes considerando: a)os dados do contribuinte, n do CPF, n de dependentes e renda anual. b)desconto de R$ 100,00 por dependente. c) at R$ 1000,00 contribuinte isento, de R$ 1000,01 a R$ 5000,00 pagar 5% e acima de R$ 5000,00 pagar 10%. Utilize a estrutura for.

Profa. MSc. Viviane Guimares Ribeiro

72

Engenharia Eltrica- Computao

8.2. while()
o mais genrico dos 3 e pode ser usado para substituir os outros 2; em outras palavras, o lao while supre todas as necessidades. J os outros dois so usados por uma questo de comodidade. Fluxograma

Pseudocdigo Enquanto (condio) faa Comando 1; Fim_enquanto Linguagem C while (condio) { Comando 1; }

Profa. MSc. Viviane Guimares Ribeiro

73

Engenharia Eltrica- Computao

Exemplo 3: Fluxograma

Pseudocdigo Algoritmo Exemplo3; Var x,y: inteiro; Inicio x 0; y 0; Enquanto(y<10) y y + 1; x y + x; Fim_Enquanto Escreva(x= , x, y= ,y); Fim

Profa. MSc. Viviane Guimares Ribeiro

74

Engenharia Eltrica- Computao

Linguagem C

Tela

Exerccios 7. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, que imprima todos os nmeros inteiro existentes entre 1 e 20 em ordem decrescente. Utilize a estrutura Enquanto. 8. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, que leia vrios nmeros positivos fornecidos pelo usurio e imprima o produto dos nmeros mpares digitados e a soma dos pares. Utilize a estrutura while. 9. Em uma fbrica h dois alarmes: um deles dispara a cada x horas e o outro, a cada y horas. Crie um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que, dados os valores de x e y, informe qual o tempo mnimo necessrio para que os dois alarmes disparem simultaneamente. Considere que x e y so nmeros inteiros positivos. 10. Em um banco, as contas so identificadas por um nmero de conta com um dgito verificador. Esse dgito verificador calculado do seguinte modo: primeiramente somamos todos os dgitos, depois dividimos a somo por 10 e tomamos o resto. Por exemplo, se o nmero da conta for 5713, temos a soma 5+7+1+3=16, dividindo 16 por 10, temos o resto 6, que seu dgito verificador. Crie um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C que, dado um nmero de conta, informe o digito verificador correspondente.

Profa. MSc. Viviane Guimares Ribeiro

75

Engenharia Eltrica- Computao

8.3. do... while()


O comando do.. while semelhante ao comando while. A diferena est no momento da avaliao da expresso, o que ocorre sempre aps a execuo do comando do. Isso faz com que o comando do lao do.. while sempre execute pelo menos uma vez antes de realizar tal teste. Fluxograma

Pseudocdigo Repita Comando 1; at que (condio);

Linguagem C do { Comando 1; }while (condio);

Profa. MSc. Viviane Guimares Ribeiro

76

Engenharia Eltrica- Computao

Exemplo 4: Fluxograma

Pseudocdigo Algoritmo Exemplo4; Var i: inteiro; Inicio i 1; Repita Escreva(i); i i + 1; At que (i>10); Fim

Linguagem C

Profa. MSc. Viviane Guimares Ribeiro

77

Engenharia Eltrica- Computao

Tela

8.4. Comando Break


O comando break, quando utilizado em um bloco de comandos, associado a um for, while ou do.. while, faz com que o lao seja imediatamente interrompido, transferindo o processamento para o primeiro comando seguinte do lao. Exemplo:

Profa. MSc. Viviane Guimares Ribeiro

78

Engenharia Eltrica- Computao

8.5. Comando Continue


O comando continue funciona de forma semelhante ao comando break. A diferena reside em que, ao invs de interromper a execuo do lao, como o comando break, o comando continue pula as instrues que tiverem abaixo e fora a prxima iterao do lao. Exemplo:

Profa. MSc. Viviane Guimares Ribeiro

79

Engenharia Eltrica- Computao

Exerccios 11. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, que imprima a soma de todos os nmeros inteiros existentes entre 10 e 35 em ordem crescente. Utilize a estrutura Repita. 12. Criar um algoritmo (Fluxograma e Pseudocdigo) e o programa em linguagem C, para calcular e imprimir a mdia aritmtica de N valores lidos. Utilize a estrutura do.. while.

Profa. MSc. Viviane Guimares Ribeiro

80

Engenharia Eltrica- Computao

13. Escreva o programa em linguagem C equivalente ao fluxograma abaixo.

Profa. MSc. Viviane Guimares Ribeiro

81

Engenharia Eltrica- Computao

Apndice A Bibliotecas
Quando queremos usar uma funo da API, ou uma funo prpria da linguagem C, no escrevemos a funo no nosso programa. muito mais prtico pedir ao pr-processador que inclua o cdigo da funo desejada. Para isto, precisamos fornecer ao pr-processador um "mapa da mina", para que ele possa localizar e incluir a funo desejada. O turbo C possui vrios "mapas" prontinhos para serem utilizados, arquivos com a extenso .h chamados de cabealhos(bibliotecas) e que se encontram no diretrio /tcwin45/include. Os principais so: Cabealho stdio.h Uso Standard Input Output (entradas e sadas padro): este cabealho contm a definio da estrutura FILE, usada para todas as entradas (input) e sadas (output), alm das definies de todas as funes que lidam com a abertura, fechamento, etc de arquivos. A famosa funo printf tambm definida aqui, juntamente com sprintf, fprintf e toda a famlia de funes relacionadas. Funes Matemticas: sin, cos, atan, log, exp, etc. Aqui encontramos trigonometria (sin, cos, tan, atan, etc), arredondamentos (ceil, floor), logaritmos (log, exp, log10, etc), raiz quadrada e cbica (sqrt, cbrt) e constantes como pi, e, etc. Standard library functions (funes da biblioteca padro): Contm abort (trmino anormal do programa), exit (trmino normal), atoi, itoa (converso de texto para inteiro), malloc, calloc, free (mdulo de memria dinmica), rand, srand (nmeros randmicos), putenv, getenv (administrao do ambiente), qsort (ordenao), strtod, strtol (converso de string para double/long), sleep (suspender a execuo por um certo perodo de tempo). Este arquivo define macros e tipos de uso geral em programas: NULL, offsetof, ptrdiff_t, size_t e muitos outros. Manipulao de strings: aqui so definidas todas as funes que lidam com a representao padro de como as strings so usadas em C. Temos strcmp (comparao de strings), strlen (obteno do comprimento de uma string), strcpy (cpia de uma string para outra), strcat (concatenao de strings), strstr (substring numa string), memset (atribuio de uma regio RAM para um caracter), memcpy (copiar memria), memmove (copiar memria cuidando da regio de sobreposio). Todas as definies de janelas: criar, abrir, etc. um arquivo cabealho grande com cerca de 500 mega de definies. Saiba que o lcc-win32 incorpora neste arquivo muitos dos arquivos que normalmente so individualizados em outras distribuies (como o winbase.h, por exemplo).

math.h

stdlib.h

stddef.h

string.h

windows.h

Se voc tiver curiosidade de saber como so montados estes arquivos de cabealho, basta abri-los em qualquer editor de texto.

Profa. MSc. Viviane Guimares Ribeiro

82

Engenharia Eltrica- Computao

Apndice B - Funes Matemticas


Levando para a questo realmente matemtica, em C existe uma biblioteca prpria para clculos matemticos um pouco mais complexos, a biblioteca ao qual nos referimos a math.h, portanto para utilizar as funes abaixo necessrio importar esta biblioteca. #include<math.h> Funo sin() Descrio Retorna o valor do seno. Recebe como argumento o valor dos graus em double. Retorna o valor do co-seno. Recebe como argumento o valor dos graus em double. Retorna o valor da tangente. Recebe como argumento o valor dos graus em double. Retorna o valor do logaritmo na base 2. Exige um argumento do tipo double. Retorna o valor do logaritmo na base 10. Exige um argumento do tipo double. Retorna o valor da base elevada ao expoente. Recebe dois argumentos do tipo double, o primeiro a base e o segundo o expoente. Por exemplo: se quisermos saber o resultada da operao 210, faramos pow(2,10). Retorna o valor da raiz quadrada. Recebe com argumento um double do qual ele deve extrair a raiz. Retorna o primeiro float sem casas decimais acima. Recebe um float como argumento. Por exemplo: ceil(45.98561) resultaria em 46. Retornar o primeiro float sem casas decimais abaixo. Recebe um float como argumento. Por exemplo: floor(45.98561) resultaria em 45.

cos()

tan()

log()

log10()

pow()

sqrt()

ceil()

floor()

Profa. MSc. Viviane Guimares Ribeiro

83

Engenharia Eltrica- Computao

Apndice C Palavras Reservadas na Ling. C


Todas as linguagens de programao tm palavras reservadas. As palavras reservadas nopodem ser usadas a no ser nos seus propsitos originais, isto , no podemos declarar funes ou variveis com os mesmos nomes. Como o C case sensitive podemos declarar uma varivel FOR, apesar de haver uma palavra reservada for, mas isto no uma coisa recomendvel de ser se fazer pois pode gerar confuso. A seguir so apresentadas as palavras reservados do ANSI C: auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof statis struct switch typedef union unsigned void volatile while

Profa. MSc. Viviane Guimares Ribeiro

84

Das könnte Ihnen auch gefallen