Buscar

Vetores e Matrizes em linguagem C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 1/13
PR1022804 2023 2 AULA09
Vetores e Matrizes em linguagem C
Arrays Unidimensionais (Vetores)
Definindo e usando vetores no C
Iniciando vetores em C
Passando vetores como parâmetros
Vetores do Tipo Char
Armazenamento de cadeias de caracteres em vetores
Processando cadeias de caracteres
Função gets()
Vetor de Char ou String
Arranjos Multidimensionais (Arrays)
Como definir e operar com matrizes no C
Passando matrizes como parâmetro
Matrizes de caracteres e vetores de strings
Vetores e Matrizes em linguagem C
OBJETIVOS
O aluno deverá:
Compreender o conceito de vetores;
Definir e inicializar vetores do tipo int, float e double no C;
Passar vetores como parâmetro sem usar o conceito de ponteiros;
Saber como utilizar vetores de char (string);
Definir e operar matrizes no C; e
Passar matrizes como parâmetros.
METODOLOGIA
A aula será expositiva e dialogada, utilizando apresentação de texto base na Internet, onde serão
mostrados exemplos testados programas no microcomputador do laboratório de informática.
INTRODUÇÃO
O vetor é uma estrutura de dados indexada, que pode armazenar uma determinada quantidade de
valores do mesmo tipo. Os dados armazenados em um vetor são chamados de itens do vetor. Para
localizar a posição de um item em um vetor usamos um número inteiro denominado índice do vetor.
Na linguagem C os vetores também são chamados de Arrays.
Arrays Unidimensionais (Vetores)
Índice
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 2/13
[Expandir]
Um vetor pode ser visto como uma variável que pode ser indexada e onde em cada posição existe um
elemento do vetor. Os elementos do vetor possuem um tipo único. Uma boa analogia é comparar o vetor
com uma tabela de tamanho fixo onde em cada linha pode ser armazenado um elemento.
PROBLEMA
Ler 10 números inteiros para um vetor de inteiros. Computar um segundo vetor que é o resultado da
multiplicação por um escalar inteiro 5.
DADO DE ENTRADA
Os 10 números armazenados em VET1
DADO DE SAÍDA
VET2, o vetor resultado da multiplicação de VET1 por 5.
EXEMPLO 1
Implementar um algoritmo (pseudo-código) para ler 10 números inteiros para um vetor e imprimir o
número de números acima da média.
NOTE
Definir um contador, iniciado em zero. Calcular a média e fazer um loop sobre o vetor testando cada
item para verificar se é maior que a média.
EXEMPLO 1 - Programa em C
EXEMPLO 2
Implementar um algoritmo (pseudo-código) para ler 10 números inteiros para um vetor e imprimir o
maior e o menor número digitado.
NOTE
É possível implementar marcando a posição do vetor que possui o maior e o menor valor ou o próprio
valor máximo e mínimo.
https://wiki.sj.ifsc.edu.br/index.php/Arquivo:ExplicacaoVetor1.jpg
https://wiki.sj.ifsc.edu.br/index.php/Arquivo:ExplicacaoVetor1.jpg
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 3/13
[Expandir]EXEMPLO 2 - Programa em C
Um vetor pode ser facilmente definido no C da forma:
TipoVetor NomeDoVetor[dimensao];
O algoritmo do fluxograma implementado anteriormente ficaria da seguinte forma em C:
#include <stdio.h>
void main()
{
 int vet1[5],vet2[5];
 int i;
 for(i=0;i<5;i++) {
 printf("Entre com vet[%d] => ",i);
 scanf("%d",&vet1[i]);
 vet2[i]=vet1[i]*5;
 }
 /* para conferir- vamos imprimir o conteúdo de vet2 */
 for(i=0;i<5;i++)
 printf("vet2[%d] => %d\n",i,vet2[i]);
}
Vamos a um exemplo que mostra as possibilidades de acesso a um vetor:
#include <stdio.h>
 
void main()
{
 float x[10]; /* vetor com 10 floats */
 int i;
 x[0] = 22.5; /* colocando 22.5 na posição 0 do vetor */
 x[9] = x[0] + 2.5;
 printf("Entrar com o número na posição 5\n");
 scanf("%f",&x[5]);
 i=2;
 x[i*2]=i*1.5; /* usando uma expressão como índice */
 
 while (i<8) { /* usando loop para acessar o vetor */
 x[i]=0.0;
 i++;
 }
 for(i=0;i<10;i++)
 printf("\nValor de x[%d]=%0.1f",i,x[i]);
 
}
NOTA
Vetores na Linguagem C começam SEMPRE na posição 0.
Pode-se iniciar um vetor da forma:
#include <stdio.h>
void main()
{
 int x[10] = {2,4,7,-5,3,2,3,4,9,10};
Definindo e usando vetores no C
Iniciando vetores em C
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 4/13
[Expandir]
[Expandir]
 printf("%d\n", x[2]);
}
Vetores não são copiados na passagem por parâmetro. Eles são passados sempre como referência. Veja o
exemplo a seguir:
#include <stdio.h>
void ler_vet(int aux[5])
{
 int i;
 for (i=0;i<5;i++) {
 printf("aux[%d] <== ",i);
 scanf("%d",&aux[i]);
 } 
}
void main()
{
 int vet[5], i;
 ler_vet(vet);
 for (i=0;i<5;i++)
 printf("vet[%d]=%d\n",i,vet[i]);
}
Perceba como é realizada a declaração de parâmetros que são vetores. Observe no exemplo, que o vetor
aux é na realidade o próprio vetor vet. Inicialmente dados são lidos para aux e depois vet é
impresso.
Não é obrigatório definir o tamanho do vetor na declaração de parâmetros. Atenção! Na realidade o C
não verifica o acesso indevido a um elemento fora do tamanho do vetor.
EXERCÍCIOS
1. Implementar um programa em C para ler 10 números reais (float) para um vetor. Usar o comando
while.
Resposta
2. Modificar o exercício para computar a média dos 10 números que estão no vetor.
3. Modificar o exercício anterior para computar a quantidade de números do vetor que estão acima da
média.
Resposta
4. Refazer os exercícios anteriores usando o comando for.
5. Considere um vetor global de floats chamado vetRnd de tamanho 100. Construa uma função que
inicia este vetor com 100 números randômicos entre 1 e 6.
6. Sobre o exercício anterior, acrescente uma função para imprimir o número de 0s,1s,...6s do vetor.
7. Implementar uma função que recebe dois vetores de inteiros como parâmetro e o tamanho dos
mesmos (suponha vetores de mesmo tamanho). A função deve retornar o número de elementos
iguais comparados posição por posição. O esqueleto da função deve ser como:
Passando vetores como parâmetros
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 5/13
[Expandir]Resposta
Exemplo: Para os vetores x[]={1,1,3,4,5} e y[]={1,2,3,3,5} temos três elementos iguais (nas posições
0, 2 e 4).
Vetores do Tipo Char
Em aulas anteriores viu-se que um caracter pode ser representado por uma sequência de bits. Utilizando
um código é possível definir o significado da sequência. Um código amplamente usado é o ASCII. Com 8
bits (7 no Ascii original) tem-se então a possibilidade de representar qualquer letra, número, ou símbolo
(vírgula, ponto-e-vírgula etc). Note que um número representado em ASCII NÃO serve para realizar
operações aritméticas. Trata-se de representação textual, por exemplo, um dígito de um número telefone.
Em síntese, uma variável do tipo caracter é tratada como um número inteiro e declarada com o tipo char,
que na prática é um número inteiro de byte.
EXEMPLO
#include <stdio.h>
 
void main ()
{
 char x='A',y=65,w=0x41,z; /* três formas de representar a mesma coisa */
 printf("Digite um caracter: ");
 scanf("%c",&z);
 printf("Caracter lido = %c\n",z);
 printf("Caracter lido = %d\n",z);
 printf("Caracter lido = %x\n",z);
 if (z==x)
 printf("Iguais 1\n");
 if (z==y)
 printf("Iguais 2\n");
 if (z==w)
 printf("Iguais 3\n");
}
Uma cadeia de caracteres ou string nada mais é que uma sequência de caracteres ASCII. Para mantermos
coerência com a linguagem C, vamos assumir que uma string bem comportada termina com um zero (0,
não o caracter '0' que é o número 48 decimal em ASCII). Em inglês chama-se "string NULL terminated".
Em algumas bibliografias e referências pode-se encontrar também: '\0'.
Exemplo: A string "IFSC" armazenadaem um vetor CADEIA, na memória de um computador, teria a
seguinte implementação:
Armazenamento de cadeias de caracteres em vetores
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 6/13
Assumi-se que cada caracter é armazenado em um byte. Uma string terminada em 0 facilita o seu
processamento pois se pode facilmente detectar o seu final. Note no exemplo acima, que a string está
armazenada em um vetor CADEIA cujo tamanho excede ao da string. Os bytes que se seguem ao zero
podem ser considerados lixo.
Sabendo como uma string é armazenada na memória de um computador torna-se fácil processá-la. Por
exemplo, vamos ver um algoritmo para contar o número de caracteres de uma string lida pelo teclado para
dentro de um vetor CADEIA.
Processando cadeias de caracteres
https://wiki.sj.ifsc.edu.br/index.php/Arquivo:ExplicacaoString1.jpg
https://wiki.sj.ifsc.edu.br/index.php/Arquivo:ExplicacaoString1.jpg
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 7/13
EXERCÍCIOS
1. Colocar o procedimento acima na forma de um subprograma (função) que recebe como parâmetro
o vetor e retorna um número inteiro correspondente ao tamanho da cadeia.
2. Elaborar um fluxograma para computador o número de ocorrências do caracter 'b' em uma string
lida pelo teclado. Apresentá-lo na forma de um subprograma que retorna o número de ocorrências.
3. Estude a tabela ASCII e elabore um fluxograma para capitalizar todos os caracteres minusculos de
uma string lida pelo teclado. Apresentá-lo como subprograma.
Esta função é utilizada em substituição ao scanf().
FORMA GERAL
char s[ ];
gets(s);
O usuário entra com uma string, que será armazenada no vetor char s[]. A função gets() não é segura, por
quê? Simplesmente porque com gets() pode ocorrer um estouro da quantidade de posições que foi
especificada na string. Veja o exemplo abaixo:
Função gets()
https://wiki.sj.ifsc.edu.br/index.php/Arquivo:FluxogramaContadorCaracteresCadeia.jpg
https://wiki.sj.ifsc.edu.br/index.php/Arquivo:FluxogramaContadorCaracteresCadeia.jpg
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 8/13
[Expandir]
[Expandir]
[Expandir]
#include <stdio.h>
void main()
{
 char buffer[10];
 printf("Entre com o seu nome: ");
 gets(buffer);
 printf("O nome é: %s\n", buffer);
}
Se o usuário digitar como entrada:
Douglas de Souza
Ou seja, digitar um total de 16 caracteres: 17 posições (incluindo o '\0' ) serão utilizadas para armazenar a
string. Como a string buffer[10] só tem 10 caracteres, os 7 caracteres adicionais serão colocados na área
de memória subsequente, escrevendo em uma região de memória que não está reservada para string. Este
efeito é conhecido como "estouro de buffer" e pode causar problemas imprevisíveis. Uma forma de se
evitar este problema é usar a função fgets().
É possível definir vetores do tipo char. Tais vetores permitem definir cadeias de caracteres. Para marcar
um final de cadeia usa-se o número '\0' (NULL),
EXEMPLO
Fazer um programa para computar o número de caracteres de uma cadeia (string) lida pelo
teclado.Use o comando while.
#include <stdio.h>
void main ()
{
 char alfa[50];
 int i=0;
 printf ("Entre com a cadeia: ");
 gets(alfa);
 while(alfa[i]!=0)
i++;
 printf ("\nNumero de caracteres em %s = %d \n", alfa, i);
}
EXERCÍCIOS
1. Implementar um programa que computa o número de caracteres 'a' de uma string lida pelo teclado.
Solução
2. Implementar um programa que computa o número de ocorrências das subcadeias "ab" de uma
string lida pelo teclado.
Solução
3. Implementar um programa que substitui todos os 'o' de uma cadeia por 'O.
Solução
Vetor de Char ou String
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 9/13
[Expandir]
[Expandir]
[Expandir]
[Expandir]
[Expandir]
[Expandir]
4. Implementar um programa que lê duas cadeias e conta o número de caracteres iguais ocupando a
mesma posição. Exemplo: suponha as cadeias "casa" e "amora". Não existem caracteres iguais na
mesma posição. Já as cadeias "casa" e "cada" possuem três caracteres iguais na mesma posição.
Solução
a) Modificar o exercício anterior para que os caracteres não iguais sejam intercambiados (mas
continue respeitando os finais das cadeias). Exemplo: "casa" e "malagueta" deve resultar em
"mala" e "casagueta"
b) Implementar um programa que lê duas cadeias e imprime uma mensagem caso as cadeias seja
iguais.
5. Ler um vetor de 10 números inteiros e colocar em ordem crescente.
Solução 5
6. Ler um vetor de char e imprimir ao contrário os caracteres lidos. Exemplo: Marrocos >> socorraM
Solução 6
7. Ler um vetor de char e trocar de minúsculas para maiúsculas. Exemplo: douglas de souza >>
DOUGLAS DE SOUZA
Solução 7
a) Modificar o programa para que ele faça também, palavras com iniciais maiúsculas. Exemplo:
douglas de souza >> Douglas De Souza.
b) Modifique o programa para que ele reconheça as ligações como: de, da, dos, e,... do nome e
desconsidere. Exemplo: maria da silva >> Maria da Silva.
Solução 7.a.b (contribuição do aluno: Pablo Fidelis Dias)
8. O cálculo do juro composto é dado pela seguinte equação:
Onde PV é o valor presente, n o número de períodos de aplicação, i a taxa de juros e FV o valor
futuro. Elabore um programa para computar o valor futuro para uma quantia aplicada de 10000
reais, dada uma taxa e o número de anos em que o valor é aplicado.
9. Refazer o exercício anterior armazenando o valor futuro de cada ano em uma posição de um vetor
valores_futuros[]. Na posição 0 armazene o valor presente.
10. Gerar um vetor de 6 posições de inteiros e preenchê-lo com 6 números randômicos
correspondentes a um jogo da megasena.
Solução 10
11. Fazer uma função adendo ao exercício anterior para ordenar o vetor gerado.
12. Adicionar uma interface para o exercício anterior para que um usuário possa entrar com 6
números de um jogo e o sistema conferir se o jogador ganhou ou não.
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 10/13
[Expandir]
[Expandir]
13. Implementar um sistema de controle de senha que permite abrir a porta para um usuário
específico (userID) com uma senha específica.
Arranjos Multidimensionais (Arrays)
Os Arrays Multidimensionais, também chamados de matrizes, são estruturas de dados que possuem duas
ou mais dimensões. Em resumo, temos que um Array que contém uma única dimensão (vetor) funciona
internamente como um Array multidimensional. A diferença está na quantidade de índices que cada
elemento da nossa estrutura terá como identificador (veremos mais tarde).
De forma similar ao vetor, basta definir a matriz usando colchetes para indicar a dimensão da variável.
EXEMPLO
Definir duas matrizes 2x3 já inicializadas e computar a soma das mesmas:
#include <stdio.h>
void main()
{
 int mA[2][3]={ 11,12,13,
 21,22,23},
 mB[2][3]={1,2,3,
 1,2,3},
 mC[2][3];
 int i,j;
 for(i=0;i<2;i++){
 for(j=0;j<3;j++) {
 mC[i][j] = mA[i][j] + mB[i][j];
 }
 }
 
}
EXERCÍCIOS
1. Modificar este exercício para que a função receba um parâmetro adicional do tipo inteiro. A função
deve retornar a média de todos os valores da matriz soma que estão acima do valor passado como
parâmetro.
2. implementar um programa para calcular a média de todos elementos da matriz C do exemplo
acima.
Solução
3. Implementar um programa para ler uma matriz quadrada NxN pelo teclado e armazená-la em uma
matriz matA. Defina matA com um tamanho máximo matA[N_MAX][N_MAX].
Solução
Como matrizes também são vetores, a mesma característica da passagem de parâmetros é considerada.
Observe os exemplos a seguir:
EXEMPLO 1
Como definir e operar com matrizes noC
Passando matrizes como parâmetro
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 11/13
#include <stdio.h>
void somar_mat(int aA[][3],int aB[][3], int cC[][3])
{
 int i,j;
 for(i=0;i<2;i++){
 for(j=0;j<3;j++) {
 cC[i][j] = aA[i][j] + aB[i][j];
 }
 }
}
void main()
{
 int mA[2][3]={ 11,12,13,
 21,22,23},
 mB[2][3]={1,2,3,
 1,2,3},
 mC[2][3];
 somar_mat(mA,mB,mC);
 
}
OBSERVE que matrizes são sempre passadas como referência.
EXEMPLO 2
#include <stdio.h>
void somar_mat(int m1[][3],int m2[][3], int m3[][3]);
void imprimir_mat(int mat[][3]);
void main()
{
 int mA[2][3]={ 11,12,13,
 21,22,23},
 mB[2][3]={1,2,3,
 1,2,3},
 mC[2][3]={4,5,6,
 7,8,9 },
 mR[2][3];
 int i,j;
 somar_mat(mA,mB,mR); // somar matrix A com B
 imprimir_mat(mR);
 somar_mat(mB,mC,mR);
 imprimir_mat(mR);
 somar_mat(mA,mC,mR);
 imprimir_mat(mR);
}
void somar_mat(int m1[][3],int m2[][3], int m3[][3])
{
 int i,j;
 for(i=0;i<2;i++){
 for(j=0;j<3;j++) {
 m3[i][j] = m1[i][j] + m2[i][j];
 }
 }
}
void imprimir_mat(int mat[][3]){
 int i,j;
 for(i=0;i<2;i++){
 for(j=0;j<3;j++) {
 printf("%d\t",mat[i][j]);
 }
 printf("\n");
 }
 printf("\n");
}
Í
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 12/13
[Expandir]
[Expandir]
[Expandir]
EXERCÍCIOS
1. Fazer uma função que recebe duas matrizes 2x3 como parâmetros e retorna a média entre todos
elementos da matriz soma destas matrizes.
Resposta
2. Implementar uma programa para calcular o determinante de uma matriz 3x3 (de reais) a ser
fornecida pelo teclado.
3. Implementar um programa para ler duas matrizes (matA e matB) e multiplicá-las, colocando o
resultado em uma matriz matC.
4. Vamos implementar um jogo similar a batalha naval da seguinte forma.
a) Crie uma matriz de inteiros global chamada ZonaDeGuerra com 10x10 posições (iniciada com
0). Construa uma função para gerar randomicamente a posição de 1 porta-aviões (colocando 1 na
sua posição), 5 fragatas (número 2) e 5 submarinos (número 3). Assuma que a cada casa onde o
inimigo alvejar será somado 10 ao número da casa.
b) Crie um contador global de tiros iniciado com 0.
c) Crie uma função de tiro. Esta função deve ler a posição de tiro, verificar se a casa ainda não foi
alvejada. Se alvejada pergunta novamente a posição. Se a posição for válida e tiver um navio
então o usuário ganha pontos da seguinte forma: 10 para o porta aviões, 5 para o submarino e 3
para fragata. A função deve retornar 0 se o jogo continua, 1 se o usuário atingiu todos os navios
ou 2 se o usuário teve um número máximo de tiros ultrapassado (assumir 30 tiros).
d) Ao final do jogo é mostrado o nome do jogador, o número de tiros dados e a pontuação obtida.
Resposta
Um vetor de strings pode ser construído usando matrizes de char. Cada string será armazenada em uma
linha do vetor.
EXEMPLO
#include <stdio.h>
void main()
{
 char TabelaUsuarios[4][10] = {
 "joao",
 "maria",
 "jose",
 "lara",
 };
 int i;
 for (i=0;i<4;i++)
 printf("%s\n",&TabelaUsuarios[i][0]);
}
NOTE
a forma como é realizada a inicialização da matriz.
EXERCÍCIOS
1. Implementar um programa para "abrir uma porta" para um usuário que se encontra na tabela acima.
Reposta
Matrizes de caracteres e vetores de strings
28/11/2023, 08:18 PR1022804 2023 2 AULA09 - MediaWiki do Campus São José
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA09 13/13
[Expandir]
2. Implementar uma tabela adicional com senhas dos usuários. O acesso deve ser concedido somente se o
usuário for validado e a senha. Defina as tabelas como variáveis globais.
3. Implementar uma modificação do exercício anterior que permite ao programa ficar em loop até que se
entre com userID igual a "fim".
4. No exercício anterior, acrescente uma tabela de contadores que permite armazenar o número de
tentativas seguidas de um usuário, no caso de erro de senha. Se o número de tentativas for maior que 3 a
porta não deverá mais ser aberta para o usuário (usuário bloqueado).
5. No exercício anterior, acrecente a figura do administrador (armazenado separadamente como user
"admin" e senha "12345". Ao logar o administrador será questionado por um usuário a ser desbloqueado.
O administrador entra com o usuário a ser desbloquado e o sistema volta a perguntar por um userID.
Exercício MEGASENA
 
Disponível em “https://wiki.sj.ifsc.edu.br/index.php?title=PR1022804_2023_2_AULA09&oldid=191361”
Esta página foi modificada pela última vez em 21 de setembro de 2023, às 18h36min.
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA08
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA08
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2#Aulas
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2#Aulas
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA10
https://wiki.sj.ifsc.edu.br/index.php/PR1022804_2023_2_AULA10
https://wiki.sj.ifsc.edu.br/index.php?title=PR1022804_2023_2_AULA09&oldid=191361

Continue navegando