• Nenhum resultado encontrado

APOSTILA LINGUAGEM C FESURV

N/A
N/A
Protected

Academic year: 2021

Share "APOSTILA LINGUAGEM C FESURV"

Copied!
43
0
0

Texto

(1)
(2)

Professor: Samuel de Moraes Lemes

Graduação: Ciência da Computação – FESURV – 2008

Pós-Graduação: Engenharia de Software – POSEAD – 2012

Áreas de atuação:

Professor Universitário na Universidade de Rio Verde – Fesurv – 2010

Programador no Hospital Evangélico de Rio Verde – Novembro de 2008 a ...

Contatos:

Telefone (64) 3611-4713

Celular (64) 9625-9798

site: sites.google.com/site/samuelemes/

E-mail: samuelemes@gmail.com

Material: Apostila de Linguagem de Programação

Sobre:

Celular;

Note, Palms e Net´s;

Internet;

Conversas Paralelas;

Chamada;

(3)

PROGRAMA DE DISCIPLINA

Disc.: Prática de Programação I/Linguagem de Programação Cód. Disc.: ESW004/NDC154 Curso: Engenharia de Software

Faculdade responsável: Engenharia de Software

Número de créditos ESW004: 04 Carga Horária total: 72 horas Número de créditos NDC154: 03 Carga Horária total: 54 horas EMENTA PRÁTICA DE PROGRAMAÇÃO I:

Ambientes de programação. Ambientes de execução. Tradutores de linguagem. Erros sintáticos e semânticos.

Detecção de erros em tempo de compilação e em tempo de execução. Implementação de algoritmos.

EMENTA LINGUAGEM DE PROGRAMAÇÃO: Ambientes de programação.

Ambientes de execução. Tradutores de linguagem. Erros sintáticos e semânticos.

Detecção de erros em tempo de compilação e em tempo de execução. Implementação de algoritmos.

OBJETIVOS GERAIS (Considerar habilidades e competências das Diretrizes Nacionais):

(4)

computacional;

 Introduzir os conceitos básicos de desenvolvimento de programas, de forma a proporcionar aos alunos uma visão crítica e sistemática sobre resolução de problemas e prepara-los para atividade de programação;

 Desenvolver a lógica de programação;

 Ao final o aluno estará apto a implementar programas simples. CONTEÚDO (Tópicos):

1. Apresentação da disciplina

1.1 Conceitos básicos da Linguagem C 1.2 Programas

1.3 Compilação e execução de um programa 2. Itens Fundamentais

2.1 Tipos de Dados e operadores 2.2 Variáveis e atribuições 2.3 Expressões

2.4 Estrutura de decisão IF 2.5 Estrutura FOR() 2.6 Estrutura WHILE 3. Estrutura de Dados (Vetores )

3.1 Introdução e conceitos de vetores 4. Ambiente de programação DevC; Code::Blocks

FORMAS DE AVALIAÇÃO:

Por ser uma disciplina teórica que visa fornecer ao aluno aprendizado sobre prática de programação, serão adotadas as seguintes estratégias de aprendizado:

Exposição oral / dialogada

Discussões, debates e questionamentos; Exercícios de fixação;

Utilização de um software voltado para implementação de programas. A avaliação deverá ser continua e consistira de:

Prova Escrita. Prova prática.

Trabalho Escrito e prático. Exercícios avaliativos diários.

BIBLIOGRAFIA BÁSICA PRÁTICA DE PROGRAMAÇÃO I:

GUIMARAES, Ângelo de Moura. Algoritmos e Estruturas de Dados. LTC, 1994. KNUTH, Donald E. The Art of Computer Programming. Addison Wesley, 1998.

(5)

SALVETTI, Dirceu Douglas. Algoritmos. Makron Books, 1998. BIBLIOGRAFIA BÁSICA LINGUAGEM DE PROGRAMAÇÃO:

JAMSA, K., KLANDER, L. Programando em C/C++ „A Bíblia”, Makron Books,1999. MELO, A. C., SILVA, F. S. C. Princípios de Linguagem de Programação, Edgar Blucher, São Paulo, 2003.

SCHILDT, H.C. Completo e Total, Makron Books, 3ªed,1997.

SEBESTA, Robert. “Conceitos de Linguagens de Programação”. Addison-Wesley, 5ª ed., Porto Alegre: Bookman, 2003.

BIBLIOGRAFIA COMPLEMENTAR:

TERADA, R. Desenvolvimento de algoritmos e estrutura de dados. São Paulo: Makron Books, 1991.

SALIBA, Walter Luiz Caram. Técnicas de Programação. Makron Books, 1992. SALVETTI, Dirceu Douglas. Algoritmos. Makron Books, 1998.

MANZANO, J. A.; Oliveira, J. F.: “Algoritmos - Lógica para desenvolvimento de Programação”.

Érica. SP. pp. 265. 1996.

FORBELLONE, A. L. V; Eberspächer, H. F. “ Lógica de Programação”. São Paulo, Ed. McGraw-Hill, 1993.

LAGES, G.: “Algoritmos e Estruturas de Dados”. São Paulo, Ed. LTC,1988.

TREMBLAY, B.: “Ciência dos Computadores. Uma abordagem Algorítmica”. São Paulo, Ed. McGraw-Hill, 1985.

(6)

Ambientes de Programação e execução de Programas

Ambientes de Programação

Um ambiente de programação é uma ferramenta de software resultante da associação de um modelo de programação a um sistema de execução. O objetivo de um ambiente de programação é simplificar o desenvolvimento e a execução de aplicações em uma determinada infraestrutura computacional.

Nesta disciplina, iremos conhecer um ambiente de programação chamado DEVCpp que utiliza a linguagem C para a construção de programas.

A medida que evoluirmos nosso aprendizado, conheceremos alguns recursos deste ambiente bem como alguns conceitos importantes como os erros que o ambiente ajuda a corrigir.

O ambiente de programação utilizado não implica no de execução, isto é, podemos programar em um ambiente e executarmos o programa em outro. Exemplo muito comum atualmente é o Android onde utilizamos um ambiente de programação diferente de Android para programar para ele. A técnica mais utilizada para se programar para ambientes heterogêneos são os simuladores ou emuladores.

Ambientes de Execução

O produto final de desenvolvimento de um software será executado em um determinado ambiente, seja ele Windows, Linux, IOS, Android, etc.

Antes de tudo, vamos aprender alguns códigos em Linguagem C para que possamos utilizar melhor o DEVCpp.

(7)

LINGUAGEM C - Introdução

C foi desenhada para que o usuário possa planejar programas estruturados e modulares. O resultado é um programa mais legível e documentado. Os programas em C tendem a ser bastante compactos e de execução rápida.

Tipos de Informações

Podemos classificar os tipos de informações a serem processadas, a grosso modo, em dados e

instruções.

Os dados são informações que serão introduzidas ao programa para que ele produza um resultado desejado. Instruções são comandos internos da linguagem.

O tipo de uma variável informa a quantidade de memória, em bytes, que esta irá ocupar e a forma como o seu conteúdo será armazenado.

Dados

Consideremos 3 tipos de dados: numéricos (inteiros e reais), caracteres e lógicos.

Tipos primitivos de dados:

1a) int: toda e qualquer informação numérica que pertença ao conjunto dos números inteiros (negativa, nula ou positiva). Exemplos: 39, 0, -56 entre outros.

a) Ele tem 15 irmãos. b) A temperatura desta noite será de -2 graus.

1b) float: toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativa, nula ou positiva, inteiro ou fracionário). Exemplos:- 4, 3, 0, 35, 1,23 a) Ela tem 1,73 metros de altura. b) Meu saldo bancário é de – R$ 121,07.

(8)

3) bool: São caracterizados como tipos lógicos, os dados com valores true (verdadeiro) e false (falso), sendo que este tipo de dado poderá representar apenas um dos dois valores. Ele é chamado por alguns de tipo boleano, devido à contribuição do filósofo e matemático inglês George Boole na área da lógica matemática.

Exemplo: você pode entrar.

Em C existem 5 tipos de variáveis básicas char, int, float, void, double.. Nos computadores da linha IBM-PC a tabela seguinte é válida:

void É o único tipo que não tem valor nenhum, não tem retorno.

Ao informamos uma constante inteira ou real (ponto flutuante) o compilador escolhe a menor quantidade de bytes para armazena-la. Podemos informar ao compilador qual o tipo da constante, para isto a constante deve ser seguida de uma letra.

u indica que o valor é sem sinal

l indica que o valor é inteiro longo ou caracter longo ul une os dois anteriores

(9)

Exercícios de Fixação

Determine qual é o tipo primitivo de informação presente nas sentenças abaixo: a) A placa “Pare!” tinha dois furos de bala.

b) Josefina subiu 5 degraus para pegar uma maçã boa.

c) Alberta levou 3 horas e meia para chegar ao hospital onde concebeu uma garota. d) Julia escreveu em sua casa: “Preserve o meio ambiente”, e ficou devendo R$ 20,59 ao vendedor de tintas.

e) José recebeu sua 18ª medalha na natação por ter alcançado a marca de 57,3

segundos nos 100 metros rasos.

Nomes de variáveis:

A escolha de nomes significativos para suas variáveis pode ajuda-lo a entender o que o programa faz e prevenir erros.

Você pode usar quantos caracteres quiser para um nome de variável com o primeiro sendo obrigatoriamente uma letra ou caractere de sublinhar e os demais podendo ser letras, números ou caracteres de sublinhar.

Uma variável não pode ter o mesmo nome de uma palavra-chave de C. Em C letras maiúsculas e minúsculas são diferentes.

PESO Pes0 Peso peso

Dicas quanto aos nomes de variáveis...

 É uma prática tradicional do C usar letras minúsculas para nomes de variáveis e maiúsculas para nomes de constantes. Isto facilita na hora da leitura do código;  Quando se escreve código usando nomes de variáveis em português, evitam-se

possíveis conflitos com nomes de rotinas encontrados nas diversas bibliotecas, que são em sua maioria absoluta, palavras em inglês.

(10)

Atribuição de variáveis:

O comando de atribuição (=) permite fornecer um valor a uma certa variável, onde o tipo de informação deve ser compatível com o tipo de variável utilizada, ou seja, somente poderemos atribuir “Pedro” a uma variável do tipo caractere. Exemplos:

A forma geral para declaração de variáveis é:

tipo_da_variavel variavel1, variavel2,...;

obs.: todas as variáveis desta linha até o ponto e vírgula serão do mesmo tipo.

A = “mesa”; b 2 + 5 – XB; c -5.4 – b;

Quando uma variável é declarada (criada) qual o seu valor inicial?

R: Não se pode saber o valor inicial de uma variável, pois na memória existem várias

informações armazenadas, muitas delas estão sendo utilizadas pelo computador, mas podem existir espaços em que foram armazenadas informações anteriormente, mas, que não estão mais em uso. Esses espaços, mesmo com informação estão disponíveis para novas variáveis. Uma variável pode ser criada em um desses espaços, e seu valor será um "lixo" qualquer da memória. Mas uma variável pode ser criada em um espaço vazio da memória, nesse caso seu valor será nulo. Para resolver esse problema do valor inicial da variável, algumas linguagens inicializam suas variáveis com 0 (zero) ou nulo.

Suponha que fosse atribuído os seguintes valores às seguintes variáveis: A = “Mesa” B = 0 C = 2 D = -5.4 E = “João” F = 1.890

(11)

Veja abaixo como poderia ficar a Memória do computador: 1 2 Mesa 0 Marcos João -15,98 3350 -5,4 false 1890 Paz

Utilizado Não vazio, não utilizado (lixo) Vazio, não utilizado

Operadores Aritméticos:

Unários ou binários têm uma ordem de prioridade que é alterada somente com utilização de parênteses.

Operador Operação Tipo Prioridade

Matemática

-

Inversão de sinal Unário 1

/

Divisão Binário 3

*

Multiplicação Binário 3

+

Adição Binário 4

(12)

Funções Internas

Expressões matemáticas ou fórmulas matemáticas:

Uma expressão matemática apresentada como: X = {43*[55/(30+2)]} nos programas deve ser apresentada como: X (43*(55/(30+2))) Uma fórmula que matematicamente é apresentada como: Area = b . h 2 nos programas deve ser apresentada como: Area = (b * h)/2

(13)
(14)
(15)

Instruções básicas ou Comandos básicos

As instruções ou comandos básicos são o conjunto de palavras-chave de uma determinada linguagem de programação. Variam de linguagem para linguagem, mas, possuem o mesmo significado, assim como as palavras na língua falada (português, inglês, etc.). Esses comandos, colocadas de forma estratégica, formarão os blocos de programas e, como são palavras reservadas, não devem ser utilizadas como nomes de variáveis.

ESTRUTURA BÁSICA DE UM PROGRAMA EM C

A FUNÇÃO main()

main() //primeira função executada { //inicia o corpo da função } //termina a função main()

A função main() deve existir em algum lugar de seu programa e marca o ponto de início da execução do programa. Se um programa for constituído de uma única função esta será main(). Logo, todas as instruções do nosso programa deverão estar dentro do escopo da função main().

A FUNÇÃO printf()

Esta função é responsável em imprimir mensagens na tela. Veremos mais abaixo que podemos imprimir variáveis utilizando esta função também, mas por enquanto, vamos nos deter apenas em sua principal funcionalidade, imprimir na tela do computador. Sintaxe:

printf(“expr. de controle %[tipo]”, lista_de_argumentos); printf(“Esta é uma mensagem”);

Dentro da função main() main()

{

printf(“Esta é uma mensagem”); }

(16)

Daqui para frente você terá contato com os comandos básicos da linguagem C que serão utilizados nos códigos, tais como: main(), #include, while(), repite(), for(), if()..else, scanf(), printf(), double, etc.

Comandos de Entrada e Saída de dados:

Assim como o ato de respirar envolve a entrada de ar, processamento pelo organismo e saída de ar, todo programa executado em um computador (salvo algumas exceções) consiste de três etapas ou pontos de trabalho: a entrada de dados, o seu processamento e a saída dos mesmos.

A FUNÇÃO scanf()

A entrada de dados será feita através da instrução scanf() em minúsculo. scanf(“”, &variável);

(17)

A saída de dados será feita através da instrução printf() em minúsculo. printf(“Mensagem qualquer”, <variável>);

Exemplo:

printf(A);

printf “Valor de A: %i A Soma de B com C = %i”, A, B+C); printf (“Você pesa %f quilos e tem %i anos”, X, idade”);

Aqui colocamos em prática os conceitos aprendidos anteriormente, nos fatores levados em consideração na construção de um programa. Sempre que estamos diante de um problema, este deve ser primeiro resolvido por nós, para que depois seja resolvido pelo computador. Isto é, ele deve ser muito bem compreendido para que depois se busque a solução no computador.

O computador deve ser utilizado para agilizar os processos que executados mecanicamente seriam muito lentos. Um exemplo bem simples: Numa turma com 50 alunos, o professor deve calcular a média de cada aluno baseado em 3 provas, sendo que a primeira tem peso 1, a segunda peso 2 e a terceira peso três. Para cada aluno o professor deve fazer o seguinte cálculo: (nota 1 + nota 2 * 2 + nota 3 * 3 ) / 6.

Este processo seria muito lento, e com a utilização do computador e um pequeno programa, seria necessário somente digitar os valores de entrada para aparecer na tela a média:

Exemplo de um programa, cuja execução do mesmo corresponda com o que está apresentado na tela acima.

Entre com a Nota 1: 10,00 Entre com a Nota 2: 8,50 Entre com a Nota 3: 7,50

(18)

main() {

//Seção de declaração de variáveis float Nota1, Nota2, Nota3, Media=0; // Seção de Comandos

printf ("ENTRE COM A Nota 1: "); scanf (“%f”, &Nota1);

printf ("ENTRE COM A Nota 2: "); scanf(“%f”, &Nota2);

printf ("ENTRE COM A Nota 3: "); scanf (“%f”, &Nota3);

Media = (Nota1+Nota2+Nota3) / 3; printf ("Média: %.2f ", Media); }

Blocos

Um bloco pode ser definido como um conjunto de ações de função bem definida. No nosso caso, o programa será visto como um bloco. Seus delimitadores serão as palavras main(){ e } (Último fecha chave) (veja o exemplo abaixo, à direita.).

Exemplo de um programa em linguagem C:

main() {

float A,B, Soma; scanf(“%f”, A); scanf(“%f”, B); Soma = A + B

printf (“A soma de A com B = %f” , soma) }

Exercícios de Fixação

1) Considerando as variáveis abaixo, assinale N para numérico, C para texto e L para Lógico:

( ) 1000

( ) “4.56”

( ) “12”

( ) .verdadeiro.

( ) .v.

( ) “cinco”

(19)

2) Supondo que as variáveis Nb, Na, Nmat e Sx sejam utilizadas para armazenar a nota de um aluno, o nome do aluno, o número de matrícula do aluno e o sexo do aluno, respectivamente. Declare-as corretamente:

3) Encontre os erros da seguinte declaração de variáveis:

variaveis

float endereço, nfilhos, valor$, xpto, c, peso; char idade, x;

bool 2lâmpada;

4) Seguindo a prioridade dos operadores, qual é o resultado das seguintes operações a) 4**2/4+17-5/2,5

b) 3**3*2+abs(4-6-1)/4+11

c) 3* pow(atoi(7/2))+abs(4-6)/4+1+pow(4)

5) Assinale com um x os nomes válidos para variáveis abaixo:

( ) Alpha ( ) 5x ( ) E(13)

( ) 1Beta ( ) X ( ) ABC

( ) BJ153 ( ) K7 ( ) X-Y

( ) Notas/2 ( ) Notas ( ) Médias

( ) A:B ( ) Inps ( ) FGTS

( ) PE&E ( ) int ( ) AWQ*

6) Utilizando o seguinte trecho de programa, e considerando a entrada dos valores 3 para x e -2 para y: main(){ float x, y, z; scanf (“%f”, &x); printf ("%f ao cubo = %f", x, x*x*x) scanf (“%f”, &y); z = x + y; printf (z); z = x / y;

(20)

Exercícios propostos

1) Apresente o seguinte programa:

Ler 2 valores, no caso variáveis A e B.

Efetuar a soma das variáveis A e B implicando seu resultado na variável X. Apresentar o valor da variável X após a soma dos dois valores indicados. Programa em DevC:

main() {

int a,b,x;

printf ("Digite o valor de a: "); scanf(“%i”, &a);

printf ("Digite o valor de b: "); scanf(“%i”, &b);

x= a + b;

printf ("A soma dos dois valores é : %i", x);

}

2) A fórmula para calcular a área de uma circunferência é: A = R2. Sendo que o valor de = 3.14159 basta estabelecer:

Ler 1 valor para raio, no caso a variável R.

Efetuar o cálculo da área, elevando o valor de R ao quadrado e multiplicando por . Apresentar o valor da variável A.

3) Leia duas variáveis A e B. A seguir, calcule o produto entre elas e atribua à variável PROD. A seguir mostre a variável PROD com mensagem correspondente.

4) Leia 2 variáveis A e B, que correspondem a 2 notas de um aluno. A seguir, calcule a média do aluno, sabendo que a nota A tem peso 3 e a nota B tem peso 7.

5) Leia 3 variáveis A, B e C, que são as notas de um aluno. A seguir calcule a média do aluno, sabendo que a nota A tem peso 2, a nota B tem peso 3 e a nota C tem peso 5. 6) Leia 4 variáveis A,B,C e D. A seguir, calcule e mostre a diferença do produto de A e B pelo produto de C e D (A*B-C*D).

7) Escreva um programa que leia o número de um funcionário, seu número de horas trabalhadas, o valor que recebe por hora e calcula o salário desse funcionário. A seguir, mostre o número e o salário do funcionário.

(21)

09) Escrever um programa que calcule e mostre o fatorial de 5.

10) Escrever um programa que escreve os números ímpares entre 10 e 20.

11) Escrever um programa que leia o código de uma peça 1, o número de peças 1, o valor unitário de cada peça 1, o código de uma peça 2, o número de peças 2, o valor unitário de cada peça 2 e calcula e mostra o valor a ser pago.

12) Escrever um programa para calcular o volume de uma esfera sendo fornecido o valor de seu raio. (4/3 *pi * R^3).

13) Escrever um programa que leia três valores: A, B e C. A seguir, calcule e mostre: a) a área do triângulo que tem A por base e C por altura.

b) a área do círculo de raio C.

c) A área do trapézio que tem a e b por bases e c por altura. d) A área do quadrado que tem lado b.

e) a área do retângulo que tem lados a e b.

14) Escrever um programa que leia 3 valores A, B e C. A seguir, encontre o maior dos três valores e o escreva com a mensagem “É o maior”. Utilize a fórmula: MaiorAB = (a + b + abs (a - b) ) / 2

15) Escrever um programa para determinar o consumo médio de um automóvel sendo fornecidos a distância total percorrida pelo automóvel e o total de combustível gasto. 16) Escrever um programa que calcule e mostre a quantidade de litros de combustível gastos em uma viagem, utilizando-se um automóvel que faz 12 KM/L. Deve-se fornecer o tempo gasto na viagem e a velocidade média durante a mesma. Assim pode-se obter distância percorrida:

Distancia= Tpo * vel

Litros_usados = distancia/12.

17 )Dois carros (x e y) saem de uma mesma cidade. O carro X sai com velocidade constante de 60 Km/h e o 2O com velocidade constante de 90 Km/h. A seguir faça a leitura de uma distância (em Quilômetros) e calcule quanto tempo leva para o carro mais veloz tomar essa distância do outro carro.

(22)

Estrutura de Seleção – Estruturas de Controle

Já vimos entrada, processamento e saída, que compõem os programas puramente seqüenciais, bem como a utilização de variáveis, constantes e operadores aritméticos. Porém, esses recursos são muito limitados dentro da programação, e haverá momentos em que um valor deverá ser tratado para que possa ser efetuado um processamento mais adequado.

Através das estruturas básicas de controle do fluxo de execução – sequenciação, seleção, repetição – e da combinação delas, poderemos criar programas para solucionar qualquer problema.

Imagine a seguinte situação: queremos um programa que mostre a média de um aluno. Até aí muito simples, mas além de calcular a média, queremos simplesmente que o programa apresente uma mensagem dizendo se o aluno está Aprovado, no caso da sua nota ter sido maior do que 5.

Desvio condicional simples -

if(){}

Para solucionar este problema, será necessário trabalhar uma nova instrução não vista até agora: if(){}. Essa instrução tem por finalidade representar a tomada de uma decisão. Sendo a condição Verdadeira, serão executadas todas as instruções entre {...e...}. No caso da condição ser falsa, o programa segue o fluxo normal após o }, não executando as linhas de programa que ficam entre {...e...}.

...

if (<condição>) {

...

<comandos para condição verdadeira somente>;

... }

...

Fluxograma ou diagrama de blocos

O Fluxograma mostra, através de desenhos e setas, a ordem em que os comandos do programa devem ser realizados pelo computador. Compare o funcionamento de um programa sequencial e um programa de seleção, através dos fluxogramas de cada um deles:

(23)

Operadores relacionais

Nos testes condicionais dos programas, são utilizados os seguintes operadores: >, <, =, >=, <= e <>.

Desvio condicional composto – if(){} else{}

Exemplo: considerando o caso anterior onde um programa deve calcular a média de um aluno e mostrar uma mensagem dizendo se esse aluno está aprovado (no caso da nota ter sido igual ou superior a Cinco), uma cláusula senão deve ser incluída no programa no caso do aluno ser reprovado (nota inferior a cinco).

Comandos; ...

if (<condição>) {

...

<comandos para condição verdadeira>;

...

else{

...

<comandos para condição falsa>;

...

}

...

(24)

Desvio condicional encadeado (ou aninhado)

Existem casos em que é necessário se estabelecerem verificações de condições sucessivas. Quando uma ação é executada, ela poderá ainda estabelecer novas condições, isso significa condições dentro de condições. Esse tipo de estrutura poderá ter diversos níveis de condição, sendo chamados de alinhamentos ou encadeamentos. O segundo encadeamento pode ser tanto para uma condição verdadeira quanto uma condição falsa.

Comandos; ...

if (<condição1>){

<comandos para condição1 verdadeira>; }else{

if (<condição2>){

<comandos para condição2 verdadeira, porém condição1 Falsa>; }else{

<condição1 e condição2 falsas>;

} }

Considere o problema abaixo e de acordo com o fluxograma anterior, onde se estabelecem 3 condições para se calcular o reajuste de salário de um funcionário: - Para salário < do que 500, o reajuste será de 15%

- Para salário >= 500 mas <= 1000, o reajuste será de 10% - Para salário > 1000, o reajuste será de 5%

(25)

Operadores Lógicos

Pode ser que se necessite, em um determinado momento, trabalhar com o relacionamento de duas ou mais condições, ao mesmo tempo na mesma instrução se, efetuando assim testes múltiplos. Nesses casos se torna necessário trabalhar com operadores lógicos ou boleanos. Os operadores lógicos são três: &&(E), ||(OU) e !(Não).

Operador Lógico: && (E)

Também chamado de conjunção. Nesse caso, todas as expressões condicionais componentes de uma conjunção devem ser verdadeiras para que a expressão resultante tenha valor verdadeiro. Abaixo é apresentada a tabela de decisão para o operador &&:

Condição 1 Condição 2 Resultado Verdadeira Verdadeira V

Verdadeira Falsa F

Falsa Verdadeira F

Falsa Falsa F

Operador Lógico: || (OU)

Também chamado de disjunção. Nesse caso quando qualquer uma das expressões componentes da disjunção for verdadeira, a expressão resultante terá valor .verdadeiro. Abaixo é apresentada a tabela de decisão para o operador ||:

Condição 1 Condição 2 Resultado Verdadeira Verdadeira V

Verdadeira Falsa V

Falsa Verdadeira V

Falsa Falsa F

Operador Lógico: ! (Não)

Também chamado de negação. Nesse caso, a negação apenas inverte o valor verdade da expressão. Se x for falso, !x é verdade. Abaixo é apresentada a tabela de decisão para o operador !:

(26)

Exercício de Fixação

1) Para os valores (a=5) (b=7) e (c=9), assinale com X a seqüência de execução dos programas abaixo: a) if (a==5 && b==7){ ( ) c = c+1; ( ) }else{ ( ) c = c-1; ( ) } ( ) b) if (a==5 && b<6){ ( ) c = 1; ( ) }else{ ( ) if (c==8){ ( ) c = 2; ( ) }else{ ( ) c = 3; ( ) } ( ) } ( )

2) Com base nas tabelas-verdade apresentadas anteriormente, assinale com V ou F, indicando quais valores são verdadeiros e quais valores são falsos. Utilize os valores: X=1 A=3 B=5 C=8 D=7 E=6 a) ! (x>3) ( ) b) (x<1) && ! (b>d) ( ) c) ! (D<0) && (C> 5) ( ) d) ! (X>3) || (C< 7) ( ) e) (A > B) || (C> B) ( ) f) (X>=2) ( ) g) (X< 1) && (B>=D) ( ) h) (D >3) || (C> 5) ( ) i) ! (D>3) || ! (B<7) ( ) j) (A>B) || ! (C>B) ( )

3) Indique a saída dos trechos de programa em português estruturado, mostrado abaixo. Para as saídas, considere os seguintes valores: A=2, B=3, C=5, D=9 e E=6.

a)

if !(D > 5){

X (A + B) * D;

}else{

(27)

b) if (A > 2 && B < 7){ X (A + 2) * (B - 2); }else{ X (A + B) / D * (C + D); } printf(X); Resposta: ____ c) if (A == 2 || B < 7){ X (A + 2) * (B - 2); }else{ X (A + B) / D * (C + D); } printf(X); Resposta: ____ d) if ((A >== 2) || (C <==1)){ X (A + D)/2; }else{ X D * C; } printf(X); Resposta: ____ e) if ((!(A > 2) || !(B < 7)){ XA + E; }else{ X A / E; } printf(X); Resposta: ____ f) if (!(A > 3) && !(B < 5)){ X A + D; }else{ X D / B; } printf(X); Resposta: ____

(28)

h) if ((A > 2) || !(B < 7)){ X A + B – 2; }else{ X A – B; } printf(X); Resposta: ____

Programas Propostos

1) Faça um programa que leia 4 variáveis A,B,C e D. A seguir, se B for maior do que C e se D for maior do que A e a soma de C com D for maior que a soma de A e B e se C e D, ambos, forem positivos e se a variável A for par escrever a mensagem “valores aceitos”, senão escrever “valores não aceitos”.

2) Desenvolva um programa que leia 3 valores inteiros e efetue o cálculo das raízes da equação de báscara. Se não foi possível calcular as raízes, mostre uma mensagem correspondente.

Obs.: não é possível divisão por 0 (zero) e raíz quadrada de número negativo;

3) Escreva um programa que leia um valor qualquer. A seguir, mostre uma mensagem dizendo em qual dos seguintes intervalos: [0,25] (25,50], (50,75], (75,100] o número está. Obs: por exemplo (25,... indica valores maiores que 25 Ex: 25,00001.

4) Com base na tabela abaixo, escreva um programa que leia o código de um item e a quantidade deste item. A seguir, calcule e mostre o valor da conta a pagar.

Código Especificação

Preço Unitário

1 Cachorro Quente R$ 7,00

2 X-Salada R$ 7,50

3 X-Bacon R$ 8,50

4 Caldo de Frango R$ 9,00

5 Refrigerante Lata R$ 3,50

5) Ler 4 valores (N1, N2, N3 e N4) referentes às quatro notas de um aluno. A seguir, se a média ponderada com pesos 2,3,4 e 1 para as respectivas provas for maior ou igual a 7, mostre uma mensagem: "Aluno foi aprovado". Se a nota for inferior a 5, mostrar uma mensagem: "Aluno foi reprovado". Se a média ficou entre 5 e 7, fazer a leitura de uma variável (EX) correspondente a nota de exame, recalcular a média (somar a nota do exame com a nota anterior e dividir por 2) e mostrar se o aluno foi ou não aprovado.

(29)

a = b * c - a * b; b = b * b - (a + 6); if ((b > a) && !(b <= C)){ b = c * 2 - (a + 2); c = b - a * c * 2; }else{ c = c + 2 * a + 2; b = c * 2 - a * 2; } x = a + b + c; printf(“SOMA DE A, B E C= %i“, x); a = b * c + a * b; b = b * b + (a + 6); if ((b > a) && !(b <= C)){ b = c * 2 - (a + 2); c = b - a * c * 2; }else{ c = c + 2 * a + 2; b = c * 2 - a * 2; } x = a + b + c; printf(“SOMA DE A, B E C=%i“, x);

7) Faça um programa que leia 2 valores (x e y), que devem representar as coordenadas de um ponto em um plano. A seguir, determine qual o quadrante ao qual pertence o ponto, ou se está sobre um dos eixos cartesianos ou na origem (x=y=0).

Y

Q2 Q1

X

Q3 Q4

8) Faça um programa que leia 3 valores e ordene-os em ordem crescente. No final, mostre os valores em ordem crescente e a seguir, como foram lidos.

9) Faça um programa que leia 3 valores e mostre estes valores ordenados por ordem decrescente.

(30)

12) Escrever um programa que lê 3 comprimentos de lado (A,B e C) e os ordena em ordem decrescente, de modo que o lado A representa o maior dos 3 lados. A seguir, determine o tipo de triângulo que estes três lados forma, com base nos seguintes casos, sempre escrevendo uma mensagem adequada:

- se A > B+C, não formam triângulo algum

- se A2 == B2 + C2, então formam triângulo retângulo - se A2 > B2 + C2, então formam triângulo obtusângulo - se A2 < B2 + C2, então formam triângulo acutângulo - se A == B == C, então formam triângulo equilátero

- se dois dos lados forem iguais, então forma um triângulo isósceles

13) Leia a hora inicial e a hora final de um jogo. A seguir calcule a duração do jogo, sabendo que o mesmo pode começar em um dia e terminar em outro, tendo uma duração máxima de 24 horas. Utilize agora o teste condicional if()

14) Leia a hora inicial, minuto inicial, hora final e minuto final de um jogo. A seguir calcule a duração do jogo, mostrando a seguinte mensagem:

(31)

Programa com Repetição – Laços de Repetição

Em vários momentos, na programação, se torna necessário repetir um trecho de um programa um determinado número de vezes. Nesse caso, pode ser criado um laço de repetição que efetue o processamento de um determinado trecho, tantas vezes quantas forem necessárias. Os laços de repetição também são conhecidos por loopings.

Supondo que se queira executar um determinado trecho de um programa três vezes (3x). Por exemplo, suponha que um programa deva ler dois valores e mostrar a média entre esses valores. Certamente a melhor técnica não seria repetir simplesmente um mesmo trecho três vezes, como é mostrado abaixo:

main(){

float media,n1,n2;

scanf (“%f”,&n1); scanf (“%f”,&n2);

media = (n1+n2)/2;

printf (“Média: %f”, media); scanf (“%f”,&n1);

scanf (“%f”,&n2);

media = (n1+n2) / 2;

printf (“Média: %f”, media); scanf (“%f”,&n1);

scanf (“%f”,&n2);

media = (n1+n2) / 2;

printf (“Média: %f”, media); }

Para esse e outros casos similares, existem comandos apropriados para efetuar a repetição de determinados trechos de programa tantas vezes quantas forem necessárias. A principal vantagem é que o programa passa a ter um tamanho muito menor, podendo ser ampliada a amplitude de processamento como for necessária. Existem 2 tipos de repetições:

(32)

Repetição utilizando estrutura for()

A estrutura do for() é garantida, e sua sintaxe em português estruturado é apresentada no seguinte formato:

for( <inicialização>; <teste>; <incremento/decremento>) {

<comandos>; }

Veja o exemplo anterior, aplicando-se nele o laço de repetição for().

main(){ float media,n1,n2; int i; for( i = 1; i <= 3; i++){ scanf(“%f”, &n1); scanf(“%f”, &n2); media = (n1+n2) / 2;

printf (“Média: %f”, media); }//finalização laço for()

(33)

O programa, que tinha que 18 linhas, passou a ter 10 linhas, com a mesma funcionalidade e ainda com a vantagem de se ampliar o número de repetições de 3 para 300, com a maior facilidade.

(34)

Repetição utilizando estrutura do

Embora também possa ser utilizada quando se tem um número pré-determinado de repetições a executar, como no exemplo acima, essa estrutura é mais indicada quando é necessário repetir um determinado trecho de programa indefinidamente. Para ilustrar, suponha que um determinado valor deva ser lido indefinidamente, até que seja digitado zero (condição de parada). Nesse caso devemos usar a estrutura do:

main(){ int val;

val = 1;

do{

printf (“Valor: ”); scanf (“%i”, val);

...

<comandos1>;

}while (val <> 0);

<comandos2>;

}

Nesse caso, quando for digitado 0 (zero) para val, o fluxo do programa segue até chegar no comando }. Ao retornar na linha while(), é verificado que o valor não é diferente de zero e o controle do programa passa para a linha comandos2. A partir daí

o fluxo do programa segue normalmente.

Veja abaixo como ficaria a utilização do laço do...while() para o exercício das 4 repetições: main(){ float media,n1,n2; int i; i = 1; do{ scanf (“%f”, &n1); scanf (“%f”, &n2); media = (n1+n2) / 2;

printf (“Média: %f”, media);

i= i+1;

} while( i <= 3); }

Embora existam outros tipos de laços de repetição, além do do e while(), somente trabalharemos com estes nos programas, pois são encontrados em praticamente todas as linguagens de programação e resolvem qualquer problema que necessite repetição.

(35)

Contador

É uma variável de controle, inteira, que serve para controlar quantas vezes um determinado trecho de programa foi executado. Considere, por exemplo, um programa que leia 100 valores, podendo eles serem somente negativos ou positivos (desconsidere os valores nulos). A seguir, considere que o programa deva mostrar a quantidade de valores positivos digitados. Nesse caso, devemos fazer um teste a cada leitura, e, no caso do valor lido ser positivo, adicionar +1 para uma variável tipo contador (contp==contp+1).

Exercício: faça o programa acima (ler 100 valores), mostrando no final a quantidade de números negativos e positivos digitados.

Acumulador

É uma variável de controle, inteira, que serve para acumular valores. Considere que um programa, além de ler 100 valores e mostrar a quantidade de números positivos, deva mostrar a média dos valores positivos digitados. Resolva este problema.

Exercícios Propostos

1) O que é e para que serve uma variável tipo CONTADOR e uma variável tipo ACUMULADOR.

2) Leia 5 valores para uma variável A . A seguir mostre quantos valores digitados foram pares, quantos valores digitados foram ímpares, quantos foram positivos e quantos foram negativos.

3) Calcule e mostre a soma dos números pares entre 1 e 100, inclusive 4) Calcule e mostre a soma dos números impares entre 1 e 100, inclusive

(36)

b) a soma dos inteiros consecutivos do menor até o maior, inclusive.

8) Apresente o quadrado de cada um dos números pares entre 1 e 1000, inclusive. 9) Apresente todos os números divisíveis por 5 que sejam maiores do que 0 e menores ou iguais a 200.

10) Leia 1 variável X inúmeras vezes (parar quando o valor digitado for <= 0). Para cada valor lido mostre a seqüência de 1 até o valor lido.

11) Faça um programa que leia 1 valor para uma variável N. A seguir, mostre a tabuada de N:

1 x N = N 2 x N = 2N ... 10 x N = 10N

12) Escreva um programa que leia 10 valores quaisquer. A seguir, mostre quantos deles estão dentro do intervalo [10,20] e quantos estão fora do intervalo, mostrando essas informações.

13) Faça um programa que leia um conjunto de 15 valores, um de cada vez, acompanhados de um código 1 ou 2. O valor representa o número de cobaias utilizadas em uma das 15 experiências feitas e os códigos 1 e 2 representam respectivamente coelhos e ratos. Mostre no final, o total de cobaias utilizadas, o total de coelhos, total de ratos, e o percentual de coelhos e ratos.

14) Escreva um programa que leia 50 valores, um de cada vez. Mostre então o maior valor lido.

15) Faça um programa que leia 5 conjuntos de 2 valores, o primeiro representando o número de um aluno e o segundo representando a sua altura em centímetros. Encontrar o aluno mais alto e mais baixo e mostrar seus números e suas alturas, dizendo se o aluno é o mais alto ou é o mais baixo.

16) Escreva um programa que leia um número e diga se este número é perfeito ou não. Um número perfeito é aquele que é igual à soma de seus divisores. Ex: 1+2+3=6 , 1+2+4+7+14=28 , etc...

17) Escrever um programa que lê um valor para X e calcula e mostra os 10 primeiros termos da série:

1º.termo: 1/x 2º.termo: 1/x + 1/x2 3º.termo: 1/x + 1/x2 + 1/x3 ...

18) Mostre os números entre 1000 e 2000 que quando divididos por 11 dão resto igual a 5.

(37)

habitantes, crescendo a uma taxa anual de 1 %. Faça um programa que calcule e mostre quantos anos serão necessários para que a população do país A ultrapasse a população do país B.

Programas com Fatoriais (considere a entrada de valores positivos)

20) Faça um programa que leia um valor para M. Se este valor for positivo, calcule e mostre o seu fatorial.

21) Faça um programa que leia um conjunto não determinado de valores para M (parar quando o valor digitado for = 0). Para cada valor lido, se este valor for par, mostre quantos divisores ele possui. Se for impar, mostre o fatorial de M.

Programa com números primos (considere a entrada de valores positivos)

22) Escrever um programa que leia um valor qualquer. A seguir, mostre se o valor lido é primo ou não é primo.

23) Leia 100 valores. A seguir, para cada valor, mostre se o valor é primo ou não. Em caso negativo, mostre quantos divisores o número possui.

24) Leia uma quantidade de valores para X indeterminadamente (parar quando o valor digitado para x for igual a zero). Para cada valor lido, mostrar se este valor é primo ou não.

25) Faça um programa que gere e mostre os valores primos entre 1 e 1000. Mostre também a soma destes valores.

26) Escreva um programa que calcula e mostra a soma dos números primos entre 92 e 1478.

(38)

Estruturas de dados

Temos os seguintes tipos de dados básicos: numéricos (inteiros e reais), lógicos e caracteres. Baseando-se nestes tipos básicos podemos construir tipos compostos. Os tipos compostos dividem-se em dois:

homogêneos (vetores e matrizes) e heterogêneos (registros). Tipos de dados Homogêneos – VETORES e MATRIZES

Os tipos homogêneos são conjuntos do mesmo tipo básico. A utilização desse tipo de estrutura de dados recebe diversos nomes, tais como: variáveis indexadas, compostas, arranjos, tabelas em memória, arrays (do inglês) vetores e matrizes. Para simplificar utilizaremos somente os nomes vetores e matrizes. Os vetores são uma lista de elementos do mesmo tipo. Quando os vetores possuem mais de uma dimensão se tornam matrizes.

Todas as variáveis e constantes ocupam um espaço em memória. Este espaço ocupado é um espaço linear, ou seja, se temos a seguinte declaração:

float a,b;

Provavelmente (dependendo do compilador da linguagem utilizada) estas variáveis ocuparão espaços subsequentes em memória. Baseado na necessidade de utilização de tipos como vetores e utilizando esta linearidade do armazenamento em memória fica fácil para as linguagens de programação implementarem estes tipos.

Vetores:

Quando possuímos uma ordem e um índice de acesso aos elementos de um conjunto então temos caracterizado um vetor. Para definirmos um vetor a sintaxe utilizada será a seguinte:

tipo variavel[índice]; exemplo: int X[3];

Para se ter idéia de como utilizar vetores em uma determinada situação, considere o seguinte problema:

Calcular a média geral da turma segundo a tabela abaixo:

ALUNO NOTA 1 NOTA 2 MÉDIA

1 5,0 5,0 5,0 2 7,0 8,0 7,5 3 8,0 9,0 8,5 4 9,5 7,5 8,5 5 10,0 2,0 6,0 6 5,5 3,5 4,5

(39)

Agora basta escrever um programa para efetuar as 7 médias, onde serão utilizadas as médias finais de cada aluno, sendo que a média do primeiro aluno está na variável MD1, do segundo em MD2, do terceiro em MD3, assim por diante. Então tem-se:

MD1 = 5

MD2 = 6.5

...

MD7 = 7.5

Com o conhecimento adquirido até o presente momento, seria então elaborado um programa que efetuaria a leitura de cada nota, a soma das mesmas e uma divisão do valor da soma por 7.

main(){

float MD1, MD2, MD3, MD4, MD5, MD6, MD7, soma, med;

inicio

Soma = 0

scanf (“%f%f%f%f%f%f%f”, &MD1, &MD2, &MD3, &MD4, &MD5, &MD6, &MD7);

soma = MD1+ MD2 + MD3 + MD4 + MD5 + MD6 + MD7; med = soma / 7;

printf (“Média = %f“ , med) }

Como seria o cálculo utilizando um Vetor MD, com 7 elementos?

Nesse caso, teremos então uma única variável indexada (vetor) contendo todos os valores das 8 notas. Isso é apresentado da seguinte forma:

MD[ 0 ] = 5,0; MD[ 1 ] = 7,5; MD[ 2 ] = 8,5; MD[ 3 ] = 8,5; MD[ 4 ] = 6,0; MD[ 5 ] = 4,5; MD[ 6 ] = 6,5;

(40)

Faça o exercício para calcular a média da turma utilizando o vetor. main(){ float VETORNOTA[7]; float MEDIAGERAL; int CONTADOR; CONTADOR= 1;

for (CONTADOR = 1; CONTADOR <7; CONTADOR ++){

printf ("ENTRE COM A NOTA DO ALUNO %i", CONTADOR+1); scanf (“%f”, &VETORNOTA[CONTADOR]);

MEDIAGERAL=MEDIAGERAL + (VETORNOTA[CONTADOR]); }

MEDIAGERAL=MEDIAGERAL / 7;

printf("A MÉDIA GERAL DA TURMA FOI DE %f", MEDIAGERAL); }

Exercícios Propostos

1) Conceitue Vetor.

2) Como se faz a leitura de um vetor A que tenha 10 elementos (A[10])

3) Faça um programa que leia um vetor V[6]. Conte a seguir, quantos valores de V são negativos e mostre essa informação.

4) Faça um programa que leia um vetor A[10]. No final, mostre todas as posições do vetor que armazenam um valor menor ou igual a 10 e o valor armazenado na posição. 5) Faça um programa que leia um vetor X[10]. Substitua, a seguir, todos os valores nulos do vetor X por 1 e escreva novamente o vetor X.

6) Faça um programa que leia um vetor C[50]. Encontre a seguir o maior elemento de C e mostre-o.

7) Faça um programa que leia um vetor N[20]. A seguir, encontre o menor elemento do vetor N e a sua posição dentro do vetor, mostrando: “O menor elemento de N é”, M, “e sua posição dentro do vetor é:”,P.

8) Faça um programa que leia um vetor N[20]. Troque a seguir, o primeiro elemento com o último, o segundo elemento com o penúltimo, etc., até trocar o décimo com o décimo primeiro. Mostre o vetor modificado.

(41)

10) Faça um programa que leia um vetor D[60]. A seguir, troque o primeiro elemento com o trigésimo primeiro, o segundo com o trigésimo segundo, etc. Mostre no final o vetor modificado.

11) Faça um programa que leia um vetor S[20] e uma variável A. A seguir, mostre o produto da variável escalar A pelo vetor.

12) Faça um programa que leia um vetor F[20] e uma variável A. A seguir, crie um vetor G[20] que é o produto da variável A pelo vetor F. Mostre o vetor G no final.

13) Faça um programa que leia dois vetores: F[20] e G[20]. Calcule e mostre, a seguir, o produto dos valores de F por G.

14) Faça um programa que leia um vetor K[10] e um vetor N[10]. A seguir, crie um vetor M que seja a diferença entre o vetor K e N (M=K-N). Mostre a seguir o vetor M.

15) Faça um programa que leia um vetor F[20]. A seguir ordene este vetor F em ordem crescente e mostre então o vetor ordenado.

16) Faça um programa que leia um vetor G[5] e a seguir leia 15 números de alunos e de vetores R[5], que seriam as respostas dos alunos para as questões, da letra A até a letra E, sendo que deve ser lido um número de aluno e um vetor de respostas por vez. Para cada aluno, mostre o número de acertos e a sua nota, sendo que todas as questões tem o mesmo peso.

17) Faça um programa que leia um vetor G[5] e a seguir leia um número indefinido de alunos e de vetores R[5], que seriam as respostas dos alunos para as questões, sendo que deve ser lido um número de aluno e um vetor de respostas por vez. Para cada aluno, mostre o número de acertos e a sua nota, sendo que todas as questões tem o mesmo peso. Mostre ainda a mensagem: “Aprovado”, se o aluno ficou com nota acima ou igual a 5 e “Reprovado” se o aluno ficou com a nota menor do que 5.

18) Faça um programa que leia um vetor G[5] e a seguir leia um número indefinido de alunos e de vetores R[5], que seriam as respostas dos alunos para as questões, sendo que deve ser lido um número de aluno e um vetor de respostas por vez. Para cada aluno, mostre o número de acertos e a sua nota, sendo que todas as questões tem o mesmo peso. Mostre ainda a mensagem: “Aprovado”, se o aluno ficou com nota acima

(42)

quando for coluna 2. Ler a seguir, para 10 apostadores, o número do cartão de cada apostador e um vetor R[13] que seriam as respostas dos apostadores. Para cada apostador, mostre o número de acertos.

21) Com relação ao exercício anterior, calcule e mostre o percentual dos apostadores que fizeram de 10 a 13 pontos e o percentual dos apostadores que fizeram menos do que 10 pontos.

22) Faça um programa que leia um vetor S[20]. A seguir, compacte este vetor S, retirando todos os valores nulos ou negativos e mostre então o vetor compactado. 23) Faça um programa que leia um vetor T[15]. Crie, a seguir, um vetor Fat[15] que contém os fatoriais do vetor T. Mostre a seguir o vetor Fat.

24) Faça um programa que leia um vetor U[15]. Crie, a seguir, um vetor Primo[15] que conterá todos os valores primos do vetor U. Mostre o vetor Primo[15] no final.

25) Faça um programa que leia um vetor V[10] e o escreve. Crie, a seguir, um vetor COMP que conterá somente os valores não repetidos de V. Mostre então o vetor COMP.

26) Faça um programa que leia um vetor V[10] e o escreve. Mostre a seguir, todos os valores distintos que aparecem no vetor.

27) Faça um programa que leia um conjunto de 30 valores. Para cada valor lido, coloque em um vetor P ou I, conforme os valores forem pares ou ímpares. O tamanho dos vetores P e I é de 10 posições. Cada vez que encher um dos vetores, (P ou I) esvazie-o, mostrando os valores que estavam no vetor. Cada vetor P ou I pode ser preenchido quantas vezes forem necessárias. No final, mostre os valores que restaram em cada um dos vetores.

28) Faça um programa que leia um vetor V[10] e um vetor X[10]. A seguir, crie um vetor Y[20] que conterá os valores dos vetores V e X em ordem crescente. Obs.: o método para fazer é livre.

29) Faça um programa que leia 5 valores para um vetor V[10] e ordene estas primeiras 5 posições do vetor em ordem crescente. Leia, a seguir, 5 valores para A, um de cada vez, e para cada valor lido, insira-o dentro do vetor de forma que o mesmo continue ordenado em ordem crescente.

30) Faça um programa que gere os 10 primeiros números primos acima de 100 e armazena-os em um vetor X[10]. Mostre então o vetor X.

(43)

Horário

HORÁRIO QUARTA SEXTA SÁBADO

18:10 ÀS 20:40 Linguagem de Programação (NDC) 18:10 AS 19:00 Prática de Programação I

07:00 AS 09:30 Prática de Programação

Data das Provas

DISCIPLINA 1ª Av. 2ª Av. FINAL

Prática de Programação I 15 Setembro 27 Novembro 22 Dezembro Linguagem de Programação (NDC) 21 Setembro 09 Novembro 21 Dezembro

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

São por demais conhecidas as dificuldades de se incorporar a Amazônia à dinâmica de desenvolvimento nacional, ora por culpa do modelo estabelecido, ora pela falta de tecnologia ou

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Os objetivos deste estudo foram: (1) avaliar a qualidade de vida em pacientes com hipertensão arterial sistêmica por meio de um questionário, que visa a transformar

By interpreting equations of Table 1, it is possible to see that the EM radiation process involves a periodic chain reaction where originally a time variant conduction

O desenvolvimento desta pesquisa está alicerçado ao método Dialético Crítico fundamentado no Materialismo Histórico, que segundo Triviños (1987)permite que se aproxime de

2007, realizando a genotipagem de cabras criadas no Sertão, Agreste e Zona da Mata do estado de Pernambuco constataram que os alelos B e D foram predominantes para a raça nativa

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem