quinta-feira, 22 de outubro de 2009

Aula Programação - ponteiros e vetores

Ex.: 01


main(){
int x,y;
int *px;
px=&y;
y=4;x=9;
printf ("%p\n", px);
*px=3;
px--;
*px=11;
printf ("%p\n", px);
printf ("x=%d, y=%d\n", x,y);
system ("pause");
}

Ex.: 02

main (){
int x; // variavel
int *px; // armazena no ponteiro
px=&x; // variavel é armazenada no ponteiro
printf ("digite: ");
scanf ("%d",px); // nao usar mais o "&" por conta q agora nao é uma variavel e sim um ponteiro
*px=2**px; // multiplica o valor do ponteiro e armazena no mesmo.
printf("O doblo do numero: %d\n", *px);// apresenta o multiplo do numero apresentado.
system ("pause");
}

---- pausa do rata para uma breve orientação quando ao futuro. -----

PONTEIROS E VETORES

main (){
int aaa [5] // ponteiro estatico, nao consigo mudar para outra posição.
aaa [0]=9;
aaa [2]=7;

------------------------------------------------------------------------

main (){
int aaa [5];
*(aaa+0)=9; // armazena na posição do ponteiro
*(aaa+2)=7; // o 2 é o descolamento do ponteiro
}

terça-feira, 20 de outubro de 2009

Ponteiros

Objetivos

Neste artigo estudaremos o que são ponteiros, qual a sua importância e como utiliza-los.

Pré-requisitos

É necessário que o leitor tenha acompanhado o artigo anterior, pois os artigos obedecem a uma seqüência.

Nota: Este artigo faz parte do curso de “Linguagem C – Básico”.

Ponteiros

O ponteiro nada mais é do que uma variável que guarda o endereço de uma outra variável. A declaração de ponteiros é feita da seguinte forma:

A instrução acima indica que pa é um ponteiro do tipo int. Agora veremos como atribuir valor ao ponteiro declarado. Para isto é necessário saber que existem dois operadores unitários que são utilizados com os ponteiros. O primeiro é o operador (*) através dele é possível retornar o valor da variável que está localizada no ponteiro. E o segundo é o operador (&) que retorna o endereço de memória que está localizado o valor da variavel contida no ponteiro. Portanto para atribuirmos um valor para o ponteiro é necessário referencia o valor da variável que se encontra no ponteiro utilizando o operador (*), como será demonstrado a seguir.

Desta forma estamos atribuindo o valor 24 para a variável que está contida no ponteiro. Para entender melhor quando e como utilizar os operadores (*) e (&), veja o programa mostrado abaixo.

Saída do programa:

Quando os ponteiros são declarados, eles são inicializados com um endereço não valido, portanto antes de usa-los é necessário atribuir um endereço e isso é feito através do operador (&) como demonstra a instrução pa=&a e pb=&b que atribui aos ponteiros pa e pb o endereço das varieis a e b.


Uma outra novidade do programa anterior é quando queremos imprimir o endereço do próprio ponteiro isto é feito referenciando pa normalmente. Porém para imprimir o endereço contido no ponteiro é usado &pa e por ultimo para imprimir o valor do endereço contido no ponteiro usamos *pa.

Através do programa abaixo é possível verificar que se pode fazer comparações entre ponteiros.

Saída do programa:

A comparação entre ponteiros em uma expressão relacional (>=,<=,> e <) é possível quando os dois ponteiros são do mesmo tipo. Isso é feito no programa mostrado através da linha “if (px1>px2)”, Caso a instrução seja verdadeira será feita a diferença entre os dois ponteiros “px1-px2”. E caso seja falso será feito ao contrario “px2-px1”. É importante dizer que os dados de saída deste programa não são iguais em todos os computadores, depende muito da memória disponível. Mas como pode-se observar em nosso exemplo, se px1=1245064 e px2=1245060 então px1-px2 será igual a um. Isso ocorre, pois a diferença depende da unidade tipo apontado. Para entender melhor, veja alguns casos de operações com ponteiros. Se um ponteiro do tipo inteiro px1 fosse igual a 150 e que os inteiros possuem dois bytes. As operações que se podem fazer são as seguintes: Incrementar o ponteiro através da expressão:

Isso fará com que o ponteiro aponte para a posição do próximo elemento. Como estamos a considerar que o tipo inteiro é do tamanho de 2 bytes, o ponteiro está sendo incrementado de 2, ou seja, o número de incrementos depende do tamanho do tipo de dados. O mesmo acontece com o decremento, porém aponta para a posição anterior. Isso é feito pela instrução:

Isso fará com que o ponteiro aponte para a posição do próximo elemento. Como estamos a considerar que o tipo inteiro é do tamanho de 2 bytes, o ponteiro está sendo incrementado de 2, ou seja, o número de incrementos depende do tamanho do tipo de dados. O mesmo acontece com o decremento, porém aponta para a posição anterior. Isso é feito pela instrução:

Uma outra opção é somar ou diminuir inteiros ao ponteiro:

Dessa forma o ponteiro irá apontar para o quinto elemento do tipo px1 adiante do elemento que o ponteiro estava a apontar. É importante saber que não se pode nem multiplicar e nem dividir ponteiros.

Do mesmo modo que se tem um ponteiro (que é o endereço de uma variável) pode-se ter ponteiro para ponteiro, ou seja, um ponteiro aponta para um outro ponteiro que finalmente aponta para a variável com o valor a ser utilizado. O que chamamos de indireção múltipla e pode ser vista no próximo programa.

Dados de saída:

Como visto no código fonte anterior, uma variável que é ponteiro para ponteiro deve ser declarada da seguinte forma:

Da mesma forma para acessar o valor final é utilizado o operador “*” duas vezes, conforme visto no neste exemplo.

Conclusão

Neste artigo vimos que um ponteiro é uma variável que guarda um endereço de uma outra variável. Estudamos como declara-las e que antes de utiliza-las é necessário atribuir um endereço válido. Foi visto também que podemos utilizar ponteiros para ponteiros. Tudo isto foi mostrado com exemplos simples e didáticos. Conclui-se, no entanto que o uso de ponteiro é importante em muitos casos e que se deve tomar muito cuidado ao usa-los. Nos próximos artigos serão estudadas algumas situações em que ponteiros são muito úteis. Como por exemplo: o uso de ponteiros para mudar os argumentos das funções e as alocações dinâmicas.


Creditos: http://www.juliobattisti.com.br

sexta-feira, 9 de outubro de 2009

Galera hoje não vou ir na facul.....assina pra mim e sobre o trabalho do rata ontem..alguém pode me mandar...vou ver se o Rata aceita por e-mail....

abrços

terça-feira, 29 de setembro de 2009

DIA 06/10 - APRESENTAÇÃO DE TRABALHO DE SISTEMAS INTELIGENTES

DIA 06/10 - PROVA DE Teroria Geral de Sistemas - Andrews

Teoria Geral dos Sistemas

1. SOCIEDADE DA INFORMAÇÃO



.Não é um modismo. .Representa uma grande mudança na organização da sociedade e da economia, havendo quem a considere como um novo paradigma técnicoôi

econômico. .É um fenômeno global, com elevado potencial transformador das atividades sociais e econômicas, uma vez que a estrutura e a dinâmica dessas atividades fatalmente são afetadas pela infraestrutura de informações.



1. SOCIEDADE DA INFORMAÇÃO



.É também acentuada a sua dimensão políticoeconômica, decorrente da contribuição da infraestrutura de informações para que as regiões sejam mais ou menos atraentes em relação aos negócios e empreendimentos.

empreendimentos. .Sua importância se assemelha à de uma boa estrada de rodagem para o sucesso econômico das localidades.



1. SOCIEDADE DA INFORMAÇÃO



.Tem ainda marcante dimensão social, em virtude de seu elevado potencial de promover a integração, ao reduzir as distâncias entre pessoas e aumentar o seu nível informacional.

Td i 9090%%da l ã di ljjamais t.Todavia, d população mundial i teve

acesso a uma linha telefônica. .Como evitar, então, que as novas tecnologias aumentem a disparidade social entre pessoas, empresas, nações e blocos econômicos?



1. SOCIEDADE DA INFORMAÇÃO



.Os países e blocos políticos, desde a década de 90 do século passado vem se defrontando com os riscos e as oportunidades que cercam o futuro, reconhecendo a importância estratégica da sociedade sociedade da informação e assim tomando

da informação e assim tomando iniciativas para assegurar que essa nova era venha em seu benefício.



1. SOCIEDADE DA INFORMAÇÃO -BRASIL



.No Brasil, a sociedade da informação está se construindo em meio a diferentes condições e projetos de desenvolvimento social, segundo as estratégias adequadas a cada contexto social.

A ttecnologias i l id vêm t f d as .As l envolvidas ê transformando estruturas e as práticas de produção, comercialização, consumo, cooperação e competição entre os agentes, alterando enfim a própria cadeia de geração de valor.



1. SOCIEDADE DA INFORMAÇÃO -BRASIL



.Do mesmo modo, regiões, segmentos sociais, setores econômicos, empresas e pessoas estão sendo afetados diretamente pelo novo paradigma

em função das condições de acesso a informação informação, da base de conhecimento, e

da base de conhecimento e sobretudo, da capacidade de aprender e inovar.

LIVRO VERDE



.MINISTÉRIO DA CIÊNCIA E DA TECNOLOGIA

.SETEMBRO, 2000, 195 p., 8 CAPÍTULOS

.WWW.SOCINFO.ORG.BR



2. INFORMAÇÃO E CONHECIMENTO



D DADOS BRUTOS – informações não estruturadas. Relacionadas ao Ambiente Interno e Externo da Empresa, suas transações, ou seja, suas partes isoladas de eventos, situações, ocorrências (Notas Fiscais, Contratos, Notícias, Ofícios, Memorandos, ....)



Analogia -Um dado representa um tijolo isolado. Nessa situação ele não tem valor significativo, necessitando estar associado a outros tijolos para que algo maior possa ser concebido.



2. INFORMAÇÃO E CONHECIMENTO



DINFORMAÇÕES – informações estruturadas, a partir do relacionamento de diversos dados organizados e classificados segundo um objetivo específico, como: Planilhas, Tabelas de Banco de Dados, Relatórios, ...

uma informação é obtida por Analogia Analogia –– uma informação é obtida por meio do relacionamento de diversos dados. Dado é um tijolo, portanto, a informação é uma parede composto de diversos tijolos relacionados e organizados de maneira coerente e útil.





2. INFORMAÇÃO E CONHECIMENTO



DCONHECIMENTO – informações processadas, avaliadas sobre a sua confiabilidade, sua relevância e sua importância, ou seja, o conhecimento é obtido pela interpretação e integração de vários dados e informações que após análise e avaliação permitem os gestores tomarem decisões mais efetivas perante a situação.

Analogia – um dado é um tijolo, a informação uma parede, e o conhecimento é um cômodo construído a partir do correto relacionamento e organização de várias paredes.





2. INFORMAÇÃO E CONHECIMENTO



DINTELIGÊNCIA – pode ser entendida como a informação como oportunidade, ou seja, o conhecimento relevante que permite atuar com vantagem no ambiente considerado. A inteligência resulta da síntese de conhecimentos, com o uso do julgamento e da intuição daquele que toma decisões e obtém uma visualização completa da situação.

situação.

Analogia – o dado é o tijolo, a informação a parede, e o conhecimento os cômodos que serão arranjados com maior ou menor propriedade, ou seja, maior



2. INFORMAÇÃO E CONHECIMENTO



DSABEDORIA – é a capacidade de utilizar adequadamente e de maneira ampla a inteligência disponível sobre determinado assunto.

Analogia – o dado é o tijolo, a informação a parede, e o conhecimento os cômodos que serão arranjados com maior ou menor propriedade, ou seja, maior ou menor

itli ê i ta bd i éé o recurso

inteligência, enquanto sabedoria ecologicamente utilizado na correta construção da casa, contribuindo para uma sociedade melhor.





2. INFORMAÇÃO E CONHECIMENTO



Dado, Informação, Conhecimento, Inteligência e Sabedoria



3. TIPOS DE CONHECIMENTOS



Socialização Tácito ► Tácito

Exemplo: dois amigos conversam sobre um game (novos comandos, como superar determinadas fases etc.).

Externalização Tácito ► Explícito

Exemplo: você pega as “dicas” que o seu amigo passou e o conhecimento que você tem

um manual sobre

ee escreve escreve um manual sobre

o game.



Combinação

Explícito



Explícito







Exemplo:

o

seu

manual

é

transmitido para outras pessoas. Elas vão acrescentando novas informações (melhorando o seu manual). Com isso, conhecimentos adicionais são gerados.



Internalização Explícito ► Tácito

Exemplo: outras pessoas lêem o

seu manual e aplicam na

prática as suas “dicas”.



4. FLUXO DA INFORMAÇÃO



5. INFORMAÇÃO E TOMADA DE DECISÃO



“depositado”



“útil” “interpretado (RH/TI)”





“pensar”

auxiliar nas



“atos mentais”





“executar”

propiciar as



“atos físicos”





6. SISTEMA DE INFORMAÇÃO – O QUE É?



Um conjunto de componentes inter-relacionados trabalhando junto para: coletar, recuperar, processar, armazenar e distribuir informação com a finalidade de facilitar o planejamento, o controle, a coordenação, a análise e o processo de decisão dentro da empresa.



6. SISTEMA DE INFORMAÇÃO – O QUE É?



Os Sistemas de Informação são recursos que auxiliam os gestores e os usuários a analisar problemas, criar novos produtos e serviços e visualizar questões complexas.

Os Sistemas de Informação são sistemas sociais compostos de

Os Sistemas de Informação são sistemas sociais compostos de tecnologia de informação que exigem investimentos sociais, organizacionais e intelectuais para fazê-los funcionar adequadamente.

SISTEMA DE INFORMAÇÃO – O QUE É?

SISTEMA DE INFORMAÇÃO – PARA QUE SERVEM?

DAuxiliar no processo de tomada de decisão, antecipando as incertezas do futuro em um ambiente dinâmico DFocar os negócios da empresa DEliminar custos, desperdícios, tarefas repetitivas

DEliminar custos, desperdícios, tarefas repetitivas DControlar as operações DMelhorar a eficiência, a eficácia e a efetividade gerencial,

perante o ambiente externo e interno DMaximizar benefícios, por meio da inserção de novos produtos/serviços

7. SISTEMA DE INFORMAÇÃO – PARA QUE SERVEM?

DReduz falhas operacionais DOportuniza negócios/atividades DContribui para a inteligência organizacional DIntegrar a Cadeia de Suprimentos por meio da Tecnologia da

Informação

quinta-feira, 24 de setembro de 2009

Aula Programação Estruturada - RAND

RAnd () -> sorteia um numero inteiro.

Ex.:



#include
main () {
int n;
n=rand ();
printf ("%d\n",n);
system ("pause");
}

Ex. com 6 numeros:



#include
main () {
int n,x;
for (x=0;x<6;x++){
n=rand ();
printf ("%d\n ",n);
}
system ("pause");
}

Aleatório com MOD



#include
main () {
int n,x;
for (x=0;x<6;x++){
n=rand ()%60+1;
printf ("%d\n ",n);
}
system ("pause");
}

Sorteio de Letras de A-Z



#include
main () {
int n,x;
for (x=0;x<6;x++){
n=rand ()%26+'a';
printf ("%c ",n);
}
system ("pause");
}

Sorteio de Letras de A-J



#include
main () {
int n,x;
for (x=0;x<6;x++){
n=rand ()%10+'a';
printf ("%c ",n);
}
system ("pause");
}

Sorteio de 2 numeros



#include
main () {
int n1,n2,prod,resp;
n1=rand()%10;
n2=rand()%10;
prod=n1*n2;
printf ("Qto da %d X %d: ",n1,n2);
scanf ("%d",&resp);
if (resp==prod)
printf ("Parabens\n");
else
printf ("Si fufu\n");
system ("pause");
}

Acerte a tabuada



#include
main () {
int n1,n2,prod,resp,x;
for (x=0;x<10;x++){
n1=rand()%10;
n2=rand()%10;
prod=n1*n2;
printf ("Qto da %d X %d: ",n1,n2);
scanf ("%d",&resp);

if (resp==prod)
printf ("Parabens\n");
else
printf ("Si fufu\n");
}
system ("pause");
}


Com tempo no final



#include
#include
main () {
clock_t inicio, fim;
inicio=clock();
int tempo;
int n1,n2,prod,resp,x;
for (x=0;x<3;x++){
n1=rand()%10;
n2=rand()%10;
prod=n1*n2;
printf ("Qto da %d X %d: ",n1,n2);
scanf ("%d",&resp);

if (resp==prod)
printf ("Parabens\n");
else
printf ("Si fufu\n");
fim=clock();
tempo=fim-inicio;
}
printf ("%d\n", tempo/1000);
system ("pause");
}

DIA 28/09 - PROVA PROGRAMAÇÃO

Registros
Vetores
Funções

WHILE
FOR
IF
SW. CASE
DECLARAÇÃO DE VARIAVEIS

Exemplo para prova: exercicio 3

struct aluno {
int idade;
int mesalidade;
char nom[50];
};


//CRIAR 1 VARIAVEL APENAS
STRUCT ALUNO AL1;

//CRIAR VETOR COM 50
STRUCT ALUNO VET[50]

struct é um tipo!