Bit Help Informática, no link a seguir apresento um projeto de Letreiro: https://aulasguilherme.wordpress.com/2016/03/26/projeto-34-letreiro-3-0-ultra-reduzido/
Por exemplo: Um numero composto pelos dígitos 1735135-5 são dividido da seguinte forma para atender aos requisitos da atividade: 17 para o valor de X, 35 como tamanho do vetor, e 1 como sendo a quantidade de valores do vetor a serem exibidos. O programa deve utilizar basicamente laços de repetição para preencher e exibir os valores do vetor.
Após o vetor estar preenchido, o programa deve permitir que uma quantidade de valores do vetor preenchido seja exibida na tela, sendo esta quantidade determinada pelo quinto dígito de seu numero
Porque quando inicializamos um vetor que é elemento de uma struct só indicamos como nulo o primeiro espaço dele e não todos os espaços ?
#define MAX 100
struct { char nome[30]; char cidade[40]; char estado[3]; insigned long int zip; }agenda[MAX];
int main() { Inic_vetor();
} int vetor() { int i; for(i=0; i<MAX ++i;){ agenda[i].nome[0] = ‘\0’; }
O nome são trinta espaços e a estrutura cem. Qual seria a forma correta? Outra coisa nesse código ++i e i++ sao a mesma coisa?
9 de dezembro de 2021 às 07:29
Agora que você aprendeu o que são vetores, como declarare viu alguns exemplos de seu uso, vamos explicar um pouco mais sobre a
inicialização de vetores e os cuidados que devemos ter ao manipular vetores, ou
arrays, em C.
Aproveitando o assunto sobre cuidados com vetores, vamos
mostrar neste tutorial de nossa apostila de C o que são os ‘lixos’ que ficam nos vetores (e variáveis), como nos vetores de
caracteres.
Baixar nossa apostila: Apostila de C
Inicializando vetores
O que é o Lixo, em linguagem C
Já se perguntou por que declaramos variáveis? Aliás, o
que é declarar?
O ato de declarar é sinônimo de alocar. Quando declaramos
uma variável, estamos alocando (separando) um espaço na memória do computador
para ela.
Lembra que dissemos que é uma linguagem de baixo nível,
que trabalha no ‘talo’ da sua máquina?
Pois é, declarar é como dizer: “Ei C, separa um pedaço da
memória pra essa variável, ok?”
Mas nos espaços da memória já existem ‘coisas’, números,
bits, dados...enfim, todo bloquinho da memória do seu computador já foi usando
antes, por outros programas que deixaram ‘vestígios’.
Diferente de outras linguagens, como Java que cada
variável inicie com valor zero, ‘’ ou NULL
, o C não limpa esses espaços. É um erro muito comum dos
iniciantes não inicializar suas variáveis, então quando vão rodar seus
programas percebem uns números gigantes e/ou negativos, totalmente nada a ver.
Vamos captar alguns lixos!
Declare um vetor, de quantas posições quiser de 10, por
exemplo.
Não inicie nada, vamos ver que valores estavam
armazenados antes do C alocar esses espaços para nosso aplicativo.
Para isso, basta rodar um laço que percorra todos as
casas e verá o tanto de coisas bizarras que aparecem:
#include <stdio.h>
int main()
{
int lixo[10];
int indice;
for(indice=0 ; indice < 11 ; indice++)
printf("Lixo na posicao %d: %d\n", indice, lixo[indice]);
}
No caso, até extrapolamos os valores do índice do vetor,
e fomos até a posição 10.
Podemos fazer isso pois quando o C seleciona um espaço de
memória pra vetores, ele tenta sempre alocar espaços contíguos (vizinhos).
Teste com caracteres também:
#include <stdio.h>
int main()
{
char lixo[10];
int indice;
for(indice=0 ; indice < 11 ; indice++)
printf("Lixo na posicao %d: %c\n", indice, lixo[indice]);
}
Interessante, não?
Como já dizia o filósofo programador C: há mais coisas
entre o programa e o hardware que nossa vã programação imagina.
postado por Programação Progressiva às 19:00 em 4 de mar. de 2013
13 Comentários
Fechar esta janela Ir para formulário de comentárioGostaria de registrar um elogio por ser de fácil compreensão as informações aqui encontradas. Estão mandando bem.
2 de abril de 2014 às 13:24
Parabens! otimo conteudo e muito bem explicado!!!!
27 de abril de 2014 às 16:29
Olá, estou começando agora em C e já estou cheio de dúvidas. Quero fazer uma letra Z na tela. Como ficaria usando um vetor.
Grato.
28 de outubro de 2014 às 12:48
Bit Help Informática, sobre isto, veja em matrizes.
19 de novembro de 2014 às 14:10
Gente, eu tentei fazer o exemplo que escreve C Progressivo no meu devc++ e não deu certo, não aparece nada na tela preta D:
10 de setembro de 2015 às 08:45
Nsa prende theu ku kel pagina li. Muitu brigadu pa kriAdir
14 de novembro de 2015 às 04:22
Bit Help Informática, no link a seguir apresento um projeto de Letreiro:
https://aulasguilherme.wordpress.com/2016/03/26/projeto-34-letreiro-3-0-ultra-reduzido/
28 de abril de 2016 às 15:36
Melhor site para se estudar C.
Parabéns pelo trabalho, graças a vocês aprendo a programar C todos os dias.
5 de janeiro de 2017 às 17:32
Por exemplo: Um numero composto pelos dígitos 1735135-5 são dividido da seguinte forma para atender aos requisitos da atividade: 17 para o valor de X, 35 como tamanho do vetor, e 1 como sendo a quantidade de valores do vetor a serem exibidos. O programa deve utilizar basicamente laços de repetição para preencher e exibir os valores do vetor.
Após o vetor estar preenchido, o programa deve permitir que uma quantidade de valores do vetor preenchido seja exibida na tela, sendo esta quantidade determinada pelo quinto dígito de seu numero
poderia me tirar esta duvida
26 de junho de 2017 às 19:20
Muito Bom, Parabéns!
25 de outubro de 2017 às 13:31
SO FALTOU OS COLCHETES DEPOIS DO FOR MAIS FORA ISSO BOA AULA !!
19 de novembro de 2018 às 17:43
Gostaria de agredecer, excelente apostila, esta me ajudando muito.
6 de maio de 2021 às 07:44
Porque quando inicializamos um vetor que é elemento de uma struct só indicamos como nulo o primeiro espaço dele e não todos os espaços ?
#define MAX 100
struct {
char nome[30];
char cidade[40];
char estado[3];
insigned long int zip;
}agenda[MAX];
int main()
{
Inic_vetor();
}
int vetor()
{
int i;
for(i=0; i<MAX ++i;){
agenda[i].nome[0] = ‘\0’;
}
O nome são trinta espaços e a estrutura cem. Qual seria a forma correta? Outra coisa nesse código ++i e i++ sao a mesma coisa?
9 de dezembro de 2021 às 07:29