O objetivo desse
programa em C é preencher uma matriz unidimensional inteira (int) qualquer e
imprimir seus números distintos na tela (ou seja, sem repeti-los).
Nível de dificuldade: 3 (difícil) O código (verde) está explicado com comentários (em azul), pronto para ser copiado e colado no seu ambiente de edição favorito: |
#include <stdio.h>
int main( void)
{
int i;
int j;
int iguais; /* para contar quantos
numeros do numerosjalidos [] sao iguais a detemrinado numero em determinada
posicao do vetornumeros[]*/
int posicaonumerosjalidos=0; /* inteiro
auxiliar que guarda a posicao no vetor do numerosjalidos[] */
int vetornumeros[9]; /* o vetor com todos os números */
int numerosjalidos[9]; /* o vetor que vai
ter todos os numeros do vetornumeros[] e na mesma ordem,
so que sem
repetir nenhum numero*/
/* Esse programa tem como funcao
receber numeros de um vetor de numeros e imprimir a tela esses numeros sem
repeti-los e na ordem em que entraram no vetor */
printf ("declare agora os numeros do
vetor de numeros: \n");
for (i=0;i<=9;i++)
{
printf ("\nEntre com o valor
do numero na posicao %d no vetor de numeros: ",i);
scanf ("%d",
&vetornumeros[i]);
}
numerosjalidos[0]=vetornumeros[0];
for (i=0;i<=9;i++)
{
iguais=0;
for
(j=0;j<=posicaonumerosjalidos;j++) /* hora de fazer a varredura (loop ou
laco de repeticao) */
{
if (vetornumeros[i]==numerosjalidos[j])
{
iguais++;
}
}
if (iguais == 0 )
{
numerosjalidos[posicaonumerosjalidos +1] = vetornumeros[i];
posicaonumerosjalidos++;
}
}
for (i=0;i<=posicaonumerosjalidos;i++)
{
printf ("\n Numero posicao
%d eh: %d",i,numerosjalidos[i]);
}
printf ("\n\n Seu programa terminou!
\n",i,numerosjalidos[i]);
system ("pause");
}
|
Mostrando postagens com marcador Engenharia de Software. Mostrar todas as postagens
Mostrando postagens com marcador Engenharia de Software. Mostrar todas as postagens
domingo, 26 de abril de 2015
Linguagem C - Matriz unidimensional - Exemplo 1
terça-feira, 24 de março de 2015
Engenharia de Software - Debugging - Interpretando um editor hexadecimal
Interpretando informações básicas exibidas por um editor
hexadecimal
Coluna 1 (esquerda) – Valor da posição representada em
hexadecimal do primeiro byte da segunda coluna desta linha.
Coluna 2 (meio) - Contém bytes do arquivo aberto, em ordem, representados
em hexadecimal por 2 numerais hexadecimais cada byte.
Coluna 3 (direita) - Contém caracteres ASCII, cada caractere
está associado a um byte da coluna 2, muito útil para alterar textos, como pode
ser observado na figura 1.a abaixo
Com o auxílio da figura 1.a abaixo e do texto abaixo,
podemos ver exemplos que ajudam a entender:
- Linha 00000030 (marcada com retângulo verde), o valor 00000030 está em hexadecimal e é referente à posição do primeiro byte desta linha na segunda coluna (retângulo à direita, com valor “EE”) o valor EE está em hexadecimal, ele é um byte, porque 4 bits dao 16 possibilidades de valor, o que caracteriza um numeral hexadecimal, logo 2 numerais hexadecimais formam 8 bits, que é um byte.
- Linha 00000030 (marcada com retângulo verde), o valor 00000030 está em hexadecimal e é referente à posição do primeiro byte desta linha na segunda coluna (retângulo à direita, com valor “EE”) o valor EE está em hexadecimal, ele é um byte, porque 4 bits dao 16 possibilidades de valor, o que caracteriza um numeral hexadecimal, logo 2 numerais hexadecimais formam 8 bits, que é um byte.
- Linha 00000010, veja o primeiro byte (primeiro retângulo
vermelho desta linha), mais adiante na mesma linha veja o caractere ASCII
marcado com o segundo retângulo vermelho, ele é a representação do byte marcado
pelo primeiro retângulo. Observe o mesmo na linha 00000020.
- Linha 00000120, veja os retângulos vermelhos dessa linha,
e agora observe que o caractere “r” é formado pelos bits representados pelo
valor hexadecimal “72” (lembrando mais uma vez 2 numeros hexadecimais são 8
bits, ou 1 byte e um caractere ASCII é um byte)
Fonte: http://www.codeproject.com/KB/miscctrl/488296/partition_explain1.jpg
Assinar:
Postagens (Atom)
