PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

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

UNIVERSIDADE DA BEIRA INTERIOR

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

1. Programação - Linguagem C /20

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

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

Aula teórica: /6. Enunciado

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

Introdução à Programação C

Introdução à Programação em C

Introdução à Programação Estruturada Parte 2. Material da Prof. Ana Eliza

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

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

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

Programação: Vetores

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

Quantas variáveis para armazenar as notas e as médias são necessárias para resolver este problema?

LP II Estrutura de Dados

PCI- Matrizes. Profa. Mercedes Gonzales Márquez

CCO 016 / COM 110 Fundamentos de Programação

UNIVERSIDADE DA BEIRA INTERIOR

INF 1005 Programação I

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

Apontadores/ponteiros

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Fundamentos de Programação 1

struct Nodo { int struct Nodo struct Nodo typedef struct Nodo *PNodo; int ConstruirLista (PNodo *H, PNodo *T) { int Criar

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

UNIVERSIDADE DA BEIRA INTERIOR

Algoritmos e Programação

Fundamentos de Programação 1

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Segunda Prova 19 de maio de 2008

Linguagem C (estruturas condicionais)

SCC Algoritmos e Estruturas de Dados I

ponteiros INF Programação I Prof. Roberto Azevedo

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

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

Estruturas de Repetição

CCO 016 / COM 110 Fundamentos de Programação

Aula 07 Introdução à Programação Subprogramas

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

UNIVERSIDADE DA BEIRA INTERIOR

Métodos Computacionais. Vetores e Matrizes Dinâmicas

Linguagem C (repetição)

Computação Informática

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

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

Exercícios Data Modeling

Matrizes. DCC 119 Algoritmos

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

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

Métodos Computacionais em Física

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Computação 2. Diego Addan Aula 3. Funções

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

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

Linguagem C. André Tavares da Silva.

Introdução à Programação I

Estruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C.

INF 1620 P1-04/10/03 Questão 1 Nome:

Algoritmos e Programação Parte 02 Vetores e Matrizes

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

Modulo 3: Else, Case, For...

Vetores(Arrays) Olimpíadas de Informática. Aulas preparatórias Introdução a Programação em C.

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

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Introdução à Programação em C

Entrada. Comando 1 Comando 2. Saída

LINGUAGEM C++ Prof. Bruno Gomes ESTRUTURAS DE DADOS HOMOGÊNEAS PARTE II - MATRIZES. Currais Novos, 2011

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

Programação Universidade da Beira Interior Departamento de Informática 2007/08

3 x, a função int abs(int x) para calcular o valor absoluto (módulo) de

Controle de Fluxo Utilizando C

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos...

Programação de Computadores II

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

Estruturas de Dados. Nem sempre, a manipulação de dados é feita por simples elementos... Vetores, Matrizes e Strings Introdução à Computação 1 de 27

Estruturas Compostas Matriz

Lógica de Programação I

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7)

INF 1620 P2-01/11/03 Questão 1 Nome:

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

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

Aula 17 Variáveis indexadas de vários índices (matrizes)

Programação de Computadores II. Cap. 4 Funções

LÓGICA DE PROGRAMAÇÃO (C) VETORES E MATRIZES. Professor Carlos Muniz

Computação e Programação Exame Época de recurso

Laboratório de Introdução à Ciência da Computação I Aula de Vetores e Matrizes

Funções em Linguagem C Parte II

Funções Vetores Matrizes

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

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

Resumo da matéria: - Sintaxe da definição duma função C: - Diagramas sintácticos do if e dos mecanismos de ciclos em C:

Aula 14: Repetição (Parte 2)

1ª Lista de Exercícios

Computação e Programação 201*/201* - 1º Semestre

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

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

Transcrição:

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1

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

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: A matriz X preenchida (com valores) 3

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] 4

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]); } } } 5

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: Apresenta no écran os elementos da matriz X 6

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 Mostrar o valor de X[i][j] 7

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

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} 9

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

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

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 quantidade de nulos de Mat e, calcule e escreva a matriz transposta de Mat, usando as funções anteriores. 12

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 na matriz X 13

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 Devolver (Nulos) 14

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

Procedimento: MatrizTransposta Parâmetros: Uma matriz quadrada preenchida, X Uma 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 à coluna k da matriz XT) 16

Algoritmo: Para i com valores desde 0 até N-1 Fazer Para j com valores desde 0 até N-1 Fazer Atribuir a XT[j][i] o valor inteiro X[i][j] 17

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]; } 18

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 EscreverMatriz(XT, N, N) 19

#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); void MatrizTransposta (int X[][], int XT[][], int N); 20

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

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 B, e escreva a matriz resultante, usando as funções anteriores. 22

Procedimento: MatrizProduto Parâmetros: Uma matriz preenchida de inteiros X Uma matriz preenchida de inteiros Y Uma matriz vazia de inteiros XY Um número inteiro associado ao número de linhas de X, M1 Um número inteiro associado ao número de colunas de X, N1 Um número inteiro associado ao número de linhas de Y, M2 Um número inteiro associado ao número de colunas de Y, N2 Saída: A matriz produto de X por Y, XY (de M1 linhas por N2 colunas) 23

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 24

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; } 25

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: LerMatriz (B, M2, N2) MatrizProduto (A, B, PROD, M1, N1, M2, N2) Mostrar a mensagem Matriz produto obtida : EscreverMatriz (PROD, M1, N2) 26

#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; 27

} 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); MatrizProduto (A, B, PROD, M1, N1, M2, N2); printf ( Matriz produto obtida :\n ); EscreverMatriz (PROD, M1, N2); 28