UNIVERSIDADE DA BEIRA INTERIOR

Documentos relacionados
PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

Apontadores/ponteiros

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

1. Programação - Linguagem C /20

UNIVERSIDADE DA BEIRA INTERIOR

Introdução à Programação em C Input / Output

Introdução à Programação. Ciclos 1ª parte

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

UNIVERSIDADE DA BEIRA INTERIOR

LP II Estrutura de Dados

UNIVERSIDADE DA BEIRA INTERIOR

ponteiros INF Programação I Prof. Roberto Azevedo

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 31/08/2015

Introdução à Programação em C (II)

Programação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral

UNIVERSIDADE DA BEIRA INTERIOR

CCO 016 / COM 110 Fundamentos de Programação

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays

Programação: Vetores

Estruturas de Repetição

Algoritmos e Programação

3. Linguagem de Programação C

ALGORITMO I ESTRUTURA DE CONTROLE DECISÃO SE / CASO;

Introdução à Programação em C (I)

5 Comando de Seleção Simples e Composta

Introdução à Programação. Ciclos 2ª parte

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS C1105 INTRODUÇÃO À PROGRAMAÇÃO EM C

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

struct Nodo { int struct Nodo typedef struct Nodo *PNodo; PNodo ConstruirPilha () { int PNodo Criar printf scanf while Push printf scanf return

INF 1005 Programação I

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Introdução à Programação em C

Introdução à Programação em C (I)

Introdução à Programação I

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU

Aula teórica: /6. Enunciado

Linguagens de programação. Introdução ao C (continuação)

Linguagem C Introdução à programação em C

Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 05 Subprogramas I

Introdução a Linguagem C (Parte I) UFPA Sistemas de Informação. Roberto Araujo 2013

Prova 1 QUESTÃO 1. (1) nusp % 3 == 1. MAC2166 Introdução à Computação para a Engenharia. # include <stdio.h>

Aula 7 Oficina de Programação Estruturas de Repetição no C. Profa. Elaine Faria UFU

Para começar... Para começar... Para começar... Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Estruturas condicionais...

Introdução à Programação

Introdução à Programação em C

Instituto de Física Segundo Semestre de Diurno. Prova Substitutiva 15/12/2000

Ficha de trabalho nº3

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

... Subprogramas Após fazer as tarefas previstas o nosso programa devolve o comando ao sistema operativo. Isto está numa hierarquia onde o nosso progr

PROGRAMAÇÃO E ALGORITMOS (LEI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Estruturas condicionais

Introdução à Programação C

Linguagem C estruturas de repetição

Programação de Computadores IV. Estruturas de repetição Slides cedidos por Bruno Augusto Dorta Marques

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)

Algoritmos e Programação

1. Para cada pergunta selecione uma opção. Resposta correta +2, incorreta -1. [12 pontos]

Programação : Engenharia Informática 6619 : Tecnologias e Sistemas de Informação. Cap. 6 Subprogramas I Subprogramas I

Métodos Computacionais em Física

Prova de Programação (21090) Data: 31 de Janeiro de 2008

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

Subprogramas. Prof. Carlos Lopes

COMANDOS DE CONTROLE DE FLUXO. Luís Charneca.

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Fundamentos de Programação 1

GFM015 Introdução à Computação Algoritmos e Programação / Controle de Fluxo / Estutura Condicional

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.

Alocação Dinâmica em C

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos

Linguagem C (estruturas condicionais)

Linguagem C Estruturas de Repetição

Linguagem C: Introdução

Vetores. e o programa deverá ler os valores separadamente:

1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível?

controle de fluxo repetições iterativas

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

Introdução a Computação

TÉCNICO DE INFORMÁTICA - SISTEMAS

INF 1620 P1-13/09/02 Questão 1 Nome:

Linguagem C (repetição)

Programação estruturada

Explicação do programa:

MAC 2166 Introdução à Computação para Engenharia

Introdução à Programação

MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2003 Primeira Prova 2 de abril de 2003

Transcrição:

UNIVERSIDADE DA BEIRA INTERIOR Programação MIEA 1º Semestre Frequência Resolução 13/12/2016 1. Escreva uma expressão lógica em linguagem C para cada uma das seguintes condições: (a) o valor da variável do tipo real N deve estar fora do intervalo [10, 100[; N < 10 N >= 100 (b) o valor da variável do tipo inteiro N não deve ser um múltiplo do valor da variável do tipo inteiro k; N % k!= 0 Escreva uma instrução de atribuiçao em linguagem C para cada uma das seguintes acções: (c) atribuir à variável X o valor da expressão 4Y + 3Y 2 + 2 sen(z) + Y, com Y e Z variáveis; X = 4 * Y + 3 * Y * Y + 2 * sin(z) + sqrt(y) (d) atribuir à variável do tipo inteiro P o valor 10 se N for par e 20 se N for ímpar; P = 10 * (N % 2 + 1) (e) atribuir à variável do tipo inteiro CENTENAS o algarismo das centenas da variável do tipo inteiro A. CENTENAS = (N / 100) % 10 ou CENTENAS = (N % 1000) / 100 Supondo que x = 10, y = -15 e z = -5, determine o valor de cada uma das seguintes expressões. Justifique, apresentando todos os cálculos efetuados (operador a operador e pela ordem apresentada). (f) x >= 8 x < 10 && z > -10 10 >= 8 ou 10 < 10 e -5 > -10 V ou F e V V e V V (g) y < z * 3 + 2 && x!= -2 * z -15 < -5 * 3 + 2 e 10!= -2 * (-5) -15 < -13 e 10!= 10 V e F F (h) y + x * (0.5 * 6 / 4) / 3-15 + 10 * (3.0 / 4) / 3-15 + 10 * 0.75 / 3-15 + 7.5 / 3-15 + 2.5-12.5

2. Usando um fluxograma, construa um algoritmo que execute as seguintes ações: - peça ao utilizador e leia um número inteiro N entre 100 e 500, inclusive; - peça ao utilizador e leia N números inteiros positivos não nulos; - determine quantos números pares foram inseridos pelo utilizador (dos N números); - mostre o resultado obtido com uma mensagem adequada. Resolução (sem fluxograma) 1) Inicio 2) Escrever( Insira um número inteiro entre 100 e 500 ) 3) Ler(N) 4) Se (N < 100 ou N > 500) Então 5) Regressar a 2) Senão 6) continuar 7) k 1 8) pares 0 9) Se (k <= N) Então 10) Escrever( Insira um número inteiro positivo não nulo ) 11) Ler(X) 12) Se (X > 0) Então 13) Se (X é par) Então 14) pares pares + 1 15) k k + 1 16) Regressar a 9) Senão 17) Continuar 18) escrever( Quantidade de pares =, pares) 19) Fim

3. Construa uma função em C que dados dois números inteiros positivos não nulos, N e K, leia N números inteiros positivos não nulos e determine e devolva a soma dos números (dos N lidos) que são múltiplos de K. (Nota: A é múltiplo de B, se o resto da divisão de A por B é zero) int somamultiplos (int N, int K) { int i, A, soma; soma = 0; i = 1; while (i <= N) { printf( Insira um inteiro positivo não nulo: ); scanf( %d, &A); if (A > 0) { if (A % K == 0) soma = soma + A; i = i + 1; return soma; 4. Considere as seguintes funções já implementadas e que se encontram no ficheiro «Frequencia.h»: int lervalorvalido (int inf, int sup) // devolve um valor inteiro no conjunto { inf,, sup void lervetor (int X[], int Dim) // lê um vetor X com Dim valores inteiros void AlterarVetor (int X[], int Dim, int A, int B) // se X[k] = A então X[k] B, para k = 0,, Dim-1 int maiorelementopositivo (int X[], int Dim) // devolve o maior elemento positivo de X (-1 se não existe) a) Implemente uma função em C que dado um vetor X com Dim números inteiros e um número inteiro Num, determine e devolva o número de elementos de X que são maiores que Num. Use o seguinte cabeçalho: int numeroelementosmaiores (int X[], int Dim, int Num) { int k, cont = 0; for (k = 0; k < Dim, k++) if (X[k] > Num) cont = cont + 1; return cont;

b) Usando as funções dadas e a construída em a), e supondo que estas funções se encontram implementadas no ficheiro «Frequencia.h», escreva um programa em C que: - peça um valor inteiro N entre 100 e 500, inclusive (usar funções anteriores), - leia um vetor A de números inteiros positivos de tamanho N (usar funções anteriores), - peça um valor inteiro K entre 1 e 10, inclusive (usar funções anteriores), - calcular o número de elementos de A são iguais a cada um dos K-ésimos maiores elementos positivos de A, se existirem (usar funções anteriores), - mostre os resultados obtidos. Ex: N = 10, A = [-2 4 7 3-8 7 9 4 7 2] e K = 3 => maior = 9 (1); 2º maior = 7 (3); 3º maior = 4 (2) #include <stdio.h> #include Frequencia.h main () { int N, K, i, A[500], nummaior, maior; N = lervalorvalido(100, 500); lervetor(a, N); K = lervalorvalido(1, 10); for (i = 1; i <= K; i = i + 1) { maior = maiorelementopositivo(a, N); if (maior >= 0) { nummaior = numeroelementosmaiores(a, N, maior-1); AlterarVetor(A, N, maior, -1); // todos os elementos iguais a maior passam a -1 printf( %d-esimo maior = %d; numero de elementos iguais = %d\n, i, maior, nummaior);

5. Implemente uma função em C que dados um vetor A com N números inteiros e um inteiro positivo não nulo K, construa um vector B com todos os k maiores elementos negativos de A, com k = 1, 2,, K (se existirem). Ex: A = [-15 32-23 -15 15-23 -32 32] => B = [-15-23 -32]. int vetorkmaioresnegativos (int A[], int N, int B[],int K) { int maiorneg, tamb, i, k; tamb = 0; for (kk = 1; kk <= K; kk++) { // determinar o primeiro elemento negativo de A maiorneg = 0; k = 0; while (k <= N-1 && A[k] >= 0) k = k + 1; if (k <= N-1) { // se existe pelo menos um negativo em A // determinar o maior negativo a partir da posição/indice k maiorneg = A[k]; for (i = k+1; i <= N-1; i = i + 1) if (A[i] < 0 && A[i] > maiorneg) maiorneg = A[i]; // adicionar mais um elemento ao vetor B if (maiorneg < 0) { tamb = tamb + 1; B[tamB-1] = i; // passar todos os elementos iguais ao menor negativo a positivo for (i = 0; i <= N-1; i = i + 1) if (A[i] == maiorneg) A[i] = (-1) * maiorneg; return tamb; // devolver o tamanho de B