FUNÇÕES NA LINGUAGEM C - Universidade da Beira...
Transcript of FUNÇÕES NA LINGUAGEM C - Universidade da Beira...
![Page 1: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/1.jpg)
1
PROGRAMAÇÃO
FUNÇÕES NA
LINGUAGEM C
![Page 2: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/2.jpg)
2
Funções em C
Implementações básicas :
a) Implementar a função LerValorValido que verifica se um valor
introduzido pelo utilizador pertence ao conjunto limitado por dois
dados valores inteiros, devolvendo o primeiro valor que pertença
àquele intervalo;
b) Implementar o procedimento LerVector que preenche um
vector com Dim valores reais (Dim ≥ 1);
a) Implementar o procedimento MostrarVector que mostra um
vector com Dim valores reais (Dim ≥ 1);
![Page 3: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/3.jpg)
3
Funções em C
Função: LerValorValido
Parâmetros:
– Dois valores inteiros, inf e sup, correspondentes aos limites
inferior e superior do intervalo válido
Retorno:
– Um número inteiro pertencente ao conjunto {inf, ..., sup}
![Page 4: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/4.jpg)
4
Funções em C
Algoritmo:
Fazer
Mostrar a mensagem “Inserir um inteiro entre inf e sup”
Introduzir um valor inteiro para Dim
Enquanto 'Dim < inf ou Dim > sup' é verdadeira
Devolver (Dim)
![Page 5: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/5.jpg)
5
Funções em C
int LerValorValido (int inf, int sup)
{
int Dim;
do {
printf (“Insira um inteiro entre %d e %d: “, inf, sup);
scanf (“%d”, &Dim);
} while (Dim < inf || Dim > sup);
return (Dim);
}
![Page 6: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/6.jpg)
6
Funções em C
Procedimento: LerVector
Parâmetros:
– Um vector X vazio (sem valores)
– Um número inteiro Dim (≥ 1), que é o tamanho de X
Saída:
– O vector X preenchido (com valores)
![Page 7: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/7.jpg)
7
Funções em C
Algoritmo:
Para k com valores desde 0 até Dim-1 Fazer
Mostrar a mensagem “Inserir um valor real: ”
Introduzir um valor real para X[k]
![Page 8: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/8.jpg)
8
Funções em C
void LerVector (float X[], int Dim)
{
int k;
for (k = 0; k <= Dim-1; k++)
{
printf (“Inserir um valor real: ”);
scanf (“%f”, &X[k]);
}
}
![Page 9: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/9.jpg)
9
Funções em C
Procedimento: MostrarVector
Parâmetros:
– O vector X preenchido (com valores)
– Um número inteiro Dim (≥ 1), que é o tamanho de X
Saída:
– Apresenta no écran os valores do vector X
![Page 10: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/10.jpg)
10
Funções em C
Algoritmo:
Para k com valores desde 0 até Dim-1 Fazer
Mostrar o valor de X[k]
![Page 11: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/11.jpg)
11
Funções em C
void MostrarVector (float X[], int Dim)
{
int k;
for (k = 0; k <= Dim-1; k++)
printf (“%7.2f ”, X[k]); // com 2 casas décimais
}
![Page 12: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/12.jpg)
12
Funções em C
Enunciado:
a) Implementar a função PosicaoMaior que determina (e devolve)
a posição/índice do maior valor de um vector X com Dim valores
reais;
b) Construir um programa em C que leia um vector V com N
valores reais (N ≥ 1), determine a posição/índice do maior dos
seus valores, calcule o maior elemento e escreva no écran os
resultados obtidos, usando as funções construídas
anteriormente.
![Page 13: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/13.jpg)
13
Funções em C
Função: PosicaoMaior
Parâmetros:
– Um vector X preenchido com valores reais
– Um número inteiro Dim (≥ 1), que é o tamanho de X
Retorno:
– Um valor inteiro correspondente à posição/índice do maior valor
do vector X
![Page 14: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/14.jpg)
14
Funções em C
Algoritmo:
Atribuir a pos_maior o valor inteiro 0
Para k com valores desde 1 até Dim-1 Fazer
Se 'X[k] > X[pos_maior]' é verdadeira Então
Atribuir a pos_maior o valor inteiro k
Devolver (pos_maior)
![Page 15: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/15.jpg)
15
Funções em C
int PosicaoMaior (float X[], int Dim)
{
int k, pos_maior;
pos_maior = 0; // assumir que o maior está na 1ª posição
for (k = 1; k <= Dim-1; k++)
if (X[k] > X[pos_maior])
pos_maior = k;
return (pos_maior);
}
![Page 16: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/16.jpg)
16
Funções em C
Algoritmo (principal):
Atribuir a N o valor inteiro LerValorValido(1, 50)
LerVector (V, N)
Atribuir a pos_maior o valor inteiro PosicaoMaior (V, N)
Mostrar a mensagem “O maior valor está na posição : ”
Mostrar o valor de pos_maior
Atribuir a maior o valor real V[pos_maior]
Mostrar a mensagem “O maior valor é : ”
Mostrar o valor de maior
![Page 17: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/17.jpg)
17
Funções em C
#include <stdio.h>int LerValorValido (int inf, int sup);void LerVector (float X[], int Dim);int PosicaoMaior (float X[], int Dim);main ( ){
float V[50], maior;int N, pos_maior;N = LerValorValido(1, 50);LerVector (V, N);pos_maior = PosicaoMaior (V, N);printf (“O maior valor está na posição : %d.\n”, pos_maior);maior = V[pos_maior];printf (“O maior valor é : %f.\n”, maior);
}
![Page 18: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/18.jpg)
18
Funções em C
Enunciado:
a) Implementar um procedimento para inverter um vector X com
Dim valores reais (trocar o 1º com o último, o 2º com o
penúltimo, ...);
b) Construir um programa em C que leia um vector V com N
valores reais (N ≥ 1), inverta este vector e escreva no écran o
novo vector, usando as funções implementadas anteriormente.
![Page 19: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/19.jpg)
19
Funções em C
Procedimento: InverterVector
Parâmetros:
– Um vector X preenchido com valores reais
– Um número inteiro Dim (≥ 1), que é o tamanho de X
Saída:
– O vector X invertido
![Page 20: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/20.jpg)
20
Funções em C
Algoritmo:
Para k com valores desde 0 até (Dim/2)-1 Fazer
Atribuir a aux o valor real X[k]
Atribuir a X[k] o valor real X[(Dim-1)-k]
Atribuir a X[(Dim-1)-k] o valor real aux
![Page 21: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/21.jpg)
21
Funções em C
void InverterVector (float X[], int Dim)
{
int k;
float aux;
for (k = 0; k <= (Dim/2)-1; k++)
{
aux = X[k];
X[k] = X[Dim-1-k];
X[Dim-1-k] = aux;
}}
![Page 22: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/22.jpg)
22
Funções em C
Algoritmo (principal):
Atribuir a N o valor inteiro LerValorValido(1, 50)
LerVector (V, N)
InverterVector (V, N)
Mostrar a mensagem “Vector invertido”
MostrarVector (V, N)
![Page 23: FUNÇÕES NA LINGUAGEM C - Universidade da Beira Interiorcbarrico/Disciplinas/ProgramacaoI/Downloads/Teorica... · 2 Funções em C Implementações básicas : a)Implementar a função](https://reader031.fdocumentos.com/reader031/viewer/2022022714/5c08ea7209d3f2e0588c70d4/html5/thumbnails/23.jpg)
23
Funções em C
#include <stdio.h>int LerValorValido (int inf, int sup);void LerVector (float X[], int Dim);void MostrarVector (float X[], int Dim);void InverterVector (float X[], int Dim);main ( )
{float V[50];int N;N = LerValorValido(1, 50);LerVector (V, N);InverterVector (V, N);printf(“Vector invertido:\n”);MostrarVector (V, N);
}