• Nenhum resultado encontrado

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

N/A
N/A
Protected

Academic year: 2021

Share "PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C"

Copied!
28
0
0

Texto

(1)

1

PROGRAMAÇÃO

FUNÇÕES NA

LINGUAGEM C

(2)

Funções em C

Implementações básicas:

a) Implementar o procedimento LerMatriz que preenche uma matriz de L linhas por C colunas de inteiros (L, C ≥ 1);

b) Implementar o procedimento EscreverMatriz que escreve uma matriz de L linhas por C colunas de inteiros (L, C ≥ 1) no écran; 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;

(3)

3

Funções em C

Procedimento: LerMatriz Parâmetros:

Uma matriz X vazia (sem valores)

Dois números inteiros L e C (L, C ≥ 1 é a dimensão de X)

Saída:

(4)

Funções em C

Algoritmo:

Para i com valores desde 0 até L-1 Fazer

Mostrar a mensagem “Inserir a linha i da matriz” Para j com valores desde 0 até C-1 Fazer

Mostrar a mensagem “Inserir um valor inteiro” Introduzir um valor inteiro para X[i][j]

(5)

5

Funções em C

void LerMatriz (int X[][], int L, int C) {

int i, j;

for (i = 0; i <= L-1; i++)

{

printf (“Inserir a linha %d da matriz.\n”, i);

for (j = 0; j <= C-1; j++)

{

printf (“Inserir um valor inteiro: ”); scanf (“%d”, &X[i][j]);

} }

(6)

Funções em C

Procedimento: EscreverMatriz Parâmetros:

Uma matriz X preenchida

Dois números inteiros L e C (L, C ≥ 1 é a dimensão de X)

Saída:

(7)

7

Funções em C

Algoritmo:

Para i com valores desde 0 até L-1 Fazer

Mostrar a mensagem “Linha i da matriz: ” Para j com valores desde 0 até C-1 Fazer

(8)

Funções em C

void EscreverMatriz (int X[][], int L, int C) {

int i, j;

for (i = 0; i <= L-1; i++)

{

printf (“Linha %d da matriz: ”, i);

for (j = 0; j <= C-1; j++)

printf (“%d ”, X[i][j]); printf (“\n”);

}

(9)

9

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:

(10)

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

(11)

11

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

(12)

Funções em C

Enunciado:

a) Implementar a função NumNulosMatriz para calcular a quantidade de elementos nulos de uma matriz de inteiros de L linhas por C colunas;

a) Implementar o procedimento MatrizTransposta que constrói a transposta de uma matriz quadrada de ordem N (N linhas por N colunas) X;

b) Construir um programa em C que leia uma matriz quadrada Mat de ordem N (1 ≤ N ≤ 10), determine e escreva no écran a

(13)

13

Funções em C

Procedimento: NumNulosMatriz Parâmetros:

Uma matriz X preenchida

Dois números inteiros L e C (L, C ≥ 1 é a dimensão de X)

Saída:

– Um valor inteiro correspondente à quantidade de nulos que estão

(14)

Funções em C

Algoritmo:

Atribuir a Nulos o valor inteiro 0

Para i com valores desde 0 até L-1 Fazer

Para j com valores desde 0 até C-1 Fazer Se 'Mat[i][j] = 0' é verdadeira Fazer

Atribuir a Nulos o valor inteiro Nulos+1

(15)

15

Funções em C

int NumNulosMatriz (int X[][], int L, int C) { int i, j, Nulos; Nulos = 0; for (i = 0; i <= L-1; i++) for (j = 0; j <= C-1; j++) if (X[i][j] == 0) Nulos++; return (Nulos); }

(16)

Funções em C

Procedimento: MatrizTransposta Parâmetros:

Uma matriz quadrada preenchida, XUma matriz quadrada vazia, XT

Um número inteiro N (N ≥ 1 é a ordem de X e XT)

Saída:

A matriz transposta de X, XT (a linha k da matriz X corresponde

(17)

17

Funções em C

Algoritmo:

Para i com valores desde 0 até N-1 Fazer

Para j com valores desde 0 até N-1 Fazer

(18)

Funções em C

void MatrizTransposta (int X[][], int XT[][], int N) { int i, j; for (i = 0; i <= N-1; i++) for (j = 0; j <= N-1; j++) XT[j][i] = X[i][j]; }

(19)

19

Funções em C

Algoritmo (principal):

Atribuir a N o valor inteiro LerValorValido(1, 10)

LerMatriz(X, N, N)

Atribuir a Nulos o valor inteiro NumNulosMatriz(X, N, N) Mostrar a mensagem “Quantidade de nulos da matriz: ” Mostrar o valor de Nulos

MatrizTransposta(X, XT, N)

Mostrar a mensagem “Matriz transposta”

(20)

Funções em C

#include <stdio.h>

void LerMatriz (int X[][], int L, int C);

void EscreverMatriz (int X[][], int L, int C); int LerValorValido (int inf, int sup);

int NumNulosMatriz (int X[][], int L, int C);

(21)

21

Funções em C

main ( ) { int X[10][10], XT[10][10], N, Nulos; N = LerValorValido(1, 10); LerMatriz(X, N, N); Nulos = NumNulosMatriz(X, N, N);

printf (“A quantidade de nulos da matriz é: %d.\n”, Nulos);

MatrizTransposta(X, XT, N);

printf(“Matriz transposta\n”);

EscreverMatriz(XT, N, N); }

(22)

Funções em C

Enunciado:

a) Implementar o procedimento MatrizProduto que calcula o produto de duas matrizes de inteiros, X (de L1 linhas por C1 colunas) e Y (de L2 linhas por C2 colunas);

b) Construir um programa em C que leia duas matrizes de inteiros,

A (de M1 linhas por N1 colunas) e B (de M2 linhas por N2

colunas) (com N1 = M2), determine a matriz produto entre A e

(23)

23

Funções em C

Procedimento: MatrizProduto Parâmetros:

Uma matriz preenchida de inteiros XUma matriz preenchida de inteiros YUma matriz vazia de inteiros XY

Um número inteiro associado ao número de linhas de X, M1Um número inteiro associado ao número de colunas de X, N1Um número inteiro associado ao número de linhas de Y, M2Um número inteiro associado ao número de colunas de Y, N2

Saída:

(24)

Funções em C

Algoritmo:

Para i com valores desde 0 até M1-1 Fazer Para j com valores desde 0 até N2-1 Fazer

Atribuir a S o valor inteiro 0

Para k com valores desde 0 até N1-1 Fazer

Atribuir a S o valor inteiro (S + X[i][k]*Y[k][j]) Atribuir a XY[i][j] o valor inteiro S

(25)

25

Funções em C

void MatrizProduto (int X[][], int Y[][], int XY[][], int M1, int N1, int M2, int N2)

{ int i, j, k, S; for (i = 0; i <= M1-1; i++) for (j = 0; j <= N2-1; j++) { S = 0; for (k = 0; k <= N1-1; j++) S = S + X[i][k] * Y[k][j]; XY[i][j] = S; } }

(26)

Funções em C

Algoritmo (principal):

Atribuir a M1 o valor inteiro LerValorValido(1, 15) Atribuir a N1 o valor inteiro LerValorValido(1, 10) Mostrar a mensagem “Matriz A:”

LerMatriz (A, M1, N1)

Atribuir a M2 o valor inteiro N1

Atribuir a N2 o valor inteiro LerValorValido(1, 20) Mostrar a mensagem “Matriz B:”

(27)

27

Funções em C

#include <stdio.h>

void LerMatriz (int Mat[][], int L, int C);

void EscreverMatriz (int Mat[][], int L, int C); int LerValorValido (int inf, int sup);

void MatrizProduto (int X[][], int Y[][], int XY[][], int M1, int N1, int M2, int N2);

main ( ) {

int A[15][10], B[10][20], PROD[15][20]; int M1, N1, M2, N2;

(28)

Funções em C

M1 = LerValorValido (1, 15); N1 = LerValorValido (1, 10); printf (“Matriz A:\n”);

LerMatriz (A, M1, N1);

M2 = N1;

N2 = LerValorValido (1, 20); printf (“Matriz B:\n”);

LerMatriz (B, M2, N2);

Referências

Documentos relacionados

No entanto, é possível inferir os solventes hidrocarbonetos e suas misturas com os álcoois de cadeia curta, etanol e isopropanol, demonstraram boa habilidade em extrair

A maioria dos protocolos supracitados é voltada às aplicações gerais. No entanto, para uma aplicação específica como a WBAN o consumo de energia pode ser minimizado usando as

Estudos já ressaltam a importância dos polaxâmeros na liberação controlada de substâncias, como um estudo realizado por Ricci e colaboradores (2005) no qual desenvolveram

Ressalvado o direito de a Fazenda Nacional cobrar e inscrever quaisquer dívidas de responsabilidade do sujeito passivo acima identificado que vierem a ser apuradas,

INDICADOR  1.4  –  Índice  de  satisfação  dos  usuários  de  serviços  sobre  legislação  do  empregado doméstico.  Resultado alcançado: ·  Meta 9,00

A partir deste conjunto de informações, os procedimentos serão distintos de acordo com a confirmação, ou não, do caso suspeito e da exposição, ou não, ao

coordenação de programas e projetos de ensino, (itens “a” até “l” da tabela acima), deverá ser igual ou inferior à soma da carga horária semanal de aulas com a carga

O presente estudo, realizado em um Hospital Maternidade no Oeste do Paraná, foi executado com o objetivo de identificar os processos do setor de compras da empresa e