Pesquisar na Comunidade
Mostrando resultados para as tags ''sobre''.
Encontrado 2 registros
-
Super básico sobre Lógica da Programação
DanSeconds postou um tópico no fórum em Lógica de Programação
Lógica de programação é o modo como se escreve um programa de computador, um algoritmo. Um algoritmo é uma sequência de passos para se executar uma função. Um exemplo de algoritmo, fora da computação, é uma receita de bolo. Na receita, devem-se seguir os passos para o bolo ficar pronto e sem nenhum problema. Na informática, os programadores escrevem as “receitas de bolo” (algoritmos) de modo que o computador leia e entenda o que deve ser feito, ao executar o algoritmo. Para isto é necessário uma linguagem de programação. A linguagem de programação é como uma língua normal, um grupo de palavras com significados. No caso da programação, a maioria das linguagens é escrita em Inglês. Estas linguagens fazem o computador assimilar cada comando e função de um algoritmo, depois executar cada função. A linguagem de programação é somente como se escreve o algoritmo. O grande problema para muitos é o que “dizer” para o computador fazer o que é desejado. Para o aprendizado foi desenvolvido o Software VisualG, que auxilia a programação totalmente em português. Com este software, não é necessário pensar em linguagem de programação, pois todos os comandos são em Português, ficando assim o foco na Lógica. Na hora de programar alguns passos são indispensáveis, como Declarar Variáveis. Variáveis podem ser escritas por letras ou números, que representam um valor que pode ser mudado a qualquer momento. Cada variável tem um espaço na memória para armazenar seus dados. Porem existem vários tipos de dados, sendo os mais comuns: Numérico: todo e qualquer tipo numero, positivo ou negativo Reais: podem ser positivos ou negativos e decimais. Caractere: São os textos. Qualquer numero pode entrar aqui, porem não terá função matemática. Saber lógica de programação é saber o melhor jeito de escrever um código, para o computador interpretar corretamente. É saber se comunicar com a maquina a partir de uma linguagem seja lá qual for. Um exemplo de algoritmo, que tem como objetivo somar 3 números inteiros. Algoritmo "soma" Var Num1, num2, num3, resultado:inteiro Inicio escreval("este programa ira somar 3 números inteiros de sua escolha:") escreval("digite um numero inteiro:") leia(num1) escreval("digite um numero para somar ao primeiro numero:") Leia (num2) escreval("digite um terceiro numero para somar aos outros 2 numeros:") Leia (num3) Resultado <- num1+num2+num3 escreval("O resultado é: ") escreval (resultado) fimalgoritmo no algoritmo acima, alguns elementos são os comandos específicos da linguagem "Portugol": Var, Inicio, Escreval, leia, <-, Fimalgoritmo, :Inteiro. Estes comandos têm funções especificas, e um dos objetivos da lógica de programação é entender como eles funcionam. Cada linguagem tem um correspondente a estes comandos, com a mesma função, porem escrito de modo diferente (sintaxe). Créditos: sabercss- 4 respostas
-
- 1
-
-
- básico
- lógica da programação
-
(e 1 mais)
Tags:
-
Recomenda-se a prévia leitura destes tópicos: - Memória - 1. Introdução - Sobre ReadProcessMemory - Sobre Scanners de Memória (Memory Scanner) VirtualQueryEx recupera informação sobre uma séria de páginas dentro do espaço de endereço virtual de um processo. Sintaxe: SIZE_T WINAPI VirtualQueryEx( _In_ HANDLE hProcess, //Handle do processo _In_opt_ LPCVOID lpAddress, //Ponteiro da página de memória _Out_ PMEMORY_BASIC_INFORMATION lpBuffer, //Ponteiro para um MEMORY_BASIC_INFORMATION que receberá as informações _In_ SIZE_T dwLength //Tamanho da área alocada para lpBuffer ); VirtualQueryEx function (Windows) O mais importante está em lpBuffer, que é do tipo PMEMORY_BASIC_INFORMATION. O struct MEMORY_BASIC_INFORMATION contém os seguintes dados: typedef struct _MEMORY_BASIC_INFORMATION { PVOID BaseAddress; //Ponteiro para o endereço base da região de páginas PVOID AllocationBase; //Ponteiro para uma série de páginas alocadas por VirtualAlloc. A página apontada por BaseAddress está dentro desta série DWORD AllocationProtect; //O estado de proteção da memória quando ela foi alocada SIZE_T RegionSize; //Tamanho em bytes da região, começando no endereço base, no qual todas as páginas tem atributos iguais DWORD State; //Estado das páginas na região de memória DWORD Protect; //Estado atual da proteção de memória das páginas na região DWORD Type; //O tipos das páginas na região de memória } MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION; MEMORY_BASIC_INFORMATION structure (Windows) Sobre o tipo de proteção temos diversas constantes, sendo alguns exemplos: PAGE_NOACCESS, PAGE_EXECUTE, PAGE_EXECUTE_READWRITE, PAGE_READONLY. Memory Protection Constants (Windows) Sobre o State temos as constantes: [table=class: grid, align: left] [tr] [td]Estado[/td] [td]Significado[/td] [/tr] [tr] [td]MEM_COMMIT (0x1000)[/td] [td]Indica que o estado em que uma área de memória física foi alocada[/td] [/tr] [tr] [td]MEM_FREE (0x10000)[/td] [td]Indica páginas livres, não acessível por processos. Para páginas livres as informações de AllocationBase, AllocationProtect, Protect, e Type são indefinidas[/td] [/tr] [tr] [td]MEM_RESERVE (0x2000)[/td] [td]Indica uma série de páginas reservadas no processo que não estão em uso, mas prontas para receber alocação física[/td] [/tr] [/table] É importante notar que o State é a primeira coisa a se verificar quando se está construindo um Memory Scanner. O Type não será abordado, vide o disclaimer. Para mais informações, pesquise sobre mapeamento de memória. Para um scanner de memória é importante: - Ler as páginas que estejam alocadas, ou seja, o State deve ser MEM_COMMIT; - Ter acesso à página de memória, ou seja, o Protect não pode ser PAGE_NOACCESS; - O tamanho da página lida pode ser alocado e copiado diretamente para o processo do Memory Scanner em um único bloco, pois páginas geralmente possuem um tamanho relativamente pequeno. Com essas informações é possível ter uma imagem da memória de um processo e saber onde se deve ou não ler memória. Deve-se ter atenção em relação aos parâmetros de escolha da página de memória a ser lida, principalmente sobre páginas protegidas com PAGE_GUARD. Projeto Iustrativo [DOWN]Download[/DOWN] [sCAN]Scan[/sCAN] Disclaimer Esse tópico foi escrito com objetivo de usar VirtualQueryEx para Memory Scanners. Alguns itens importantes sobre a função e seus membros podem não ter sido abordados, ou foram abordados superficialmente.
