2. Conceitos Básicos

Para começarmos, precisamos conhecer alguns poucos conceitos essenciais e extremamente simples para entender o que é esse mundo da computação.

Antes de começarmos

Antes de começarmos preciso que você leia as frases abaixo e reflita sobre elas, pois são essenciais para um programador.

"Posso aprender o que quiser, so depende do tempo."

Tire de sua mente pensamentos limitantes como "Não consigo aprender", pois todos nós podemos aprender qualquer coisa, porém depende, principalmente, do esforço diário, da metodologia aplicada e do tempo dedicado. Alguns podem aprender a programar em 6 meses, enquanto outros em 3 anos, mas todos conseguem.

"Se exponha a conteúdos, principalmente em redes sociais."

É fundamental você se expor a conteúdos relacionados ao que pretende aprender, isso em todas as mídias possíveis, de redes sociais a filmes/séries. Eu sou um exemplo vivo. Há uns 10 anos, estava interessado por economia, por isso eu comprei um livro sobre história da economia, o livro Crash uma Breve História da Economia, do Alexandre Versignassi. Um livro fantástico! Ao mesmo tempo, eu entrei em grupos do facebook sobre economia e segui alguns professores de universidades, principalmente federais. Com isso, até o aplicativo do Google no celular passou a me recomendar notícias voltadas para economia. Dessa forma comecei a ser bombardeado de notícias, opiniões e linguajares de economia. Isso me ajudou muito a entender mais sobre o assunto.

Mais recentemente, em 2019, comecei a aprender sobre Atividade Física, principalmente musculação, e em 2020, tentei melhorar meus conhecimentos em nutrição (foco em alimentação). Por conta disso, sigo diversas contas de ótimos nutricionistas (que usam abordagem baseada em evidências ciêntificas e sem terrorismo) e comprei livros para leitos, além de consumir conteúdos no YouTube. Assim melhorei muito meus conhecimentos em atividade física e nutrição e tenho colocado em prática, por conta disso, considero que sei muito sobre o assunto, do ponto de vista mais prático, inclusive sei mais que alguns nutricionistas formados. Infelizmente, há muitos profissionais ruins e que falam coisas erradas para seus seguidores e pacientes.

"Aplique o conhecimento de forma prática."

Todo conhecimento precisa ser aplicado de forma prática, pois, do contrário, o esquecemos. Assim, pratique o que aprende e tente aplicar a problemas reais e da sua vida, por exemplo, imagine que você precise realizar alguma conversão em uma planilha de dados, por que não realizar tal conversão usando programação ao invés de um software de planilha de dados?

Finalidade da Informática

A informática existe, principalmente, para facilitar, agilizar e automatizar tarefas, permitindo a você criar seus próprios programas para melhorar a sua vida ou de outra pessoa, bem como a de tornar profissões mais eficientes. E tudo isso é feito com nossos computadores, sejam nosso notebooks, smartphones ou até os caixas eletrônicos de bancos.

Informática pode ser definida como a resolução de problemas por meio de recursos tecnológicos.

Se quiser saber ainda mais sobre conceitos básicos de informática acesse o ebook Introdução à Informática.

Partes de um Computador

Hardware e Software

Um computador é formado por um conjunto de Hardwares e Softwares.

  • Hardware: Refere-se a parte física dos computadores, ou seja, toda parte eletrônica, como todos equipamentos dentro do gabinete do pc, o mouse, teclado etc. Assim, em uma linguagem mais leiga, é a parte que podemos tocar com nossas mãos.

  • Software: refere-se a parte lógica dos computadores, os códigos e programas com suas instruções para manipular dados do computador. Ou seja, são as instruções que são interpretadas pelo computador para executar alguma tarefa.

Dispositivos de Entrada e Saída

Os dispositivos de um computador, são divididos entre dispositivos de Entrada e dispositivos de Sáida, podendo haver dispositivos que são de Entrada e Saída.

  • Entrada: Refere-se aos dispositivos que recebem informações do mundo real e repassam ao computador, como um Teclado, um Mouse, um Sensor etc.

  • Saída: São os dispositivos que enviam informações do computador para o usuário ou o mundo real, como um Monitor de vídeo, uma impressora.

  • Entrada e Saída: Dispositivos que combinam as duas primeiras formas, como uma uma memória RAM ou um HD que é lido e escrito à todo tempo ou, mesmo, uma Multifuncional que imprime (saída), copia (entrada e saída) e escaneia (entrada).

Programas

Programas são conjuntos de instruções que realizam determinadas tarefas, os principais são os Sistemas Operacionais e os aplicativos, que, geralmente, fornecem interação com o usuário, além de funções que agregam valor as tarefas dos usuários, facilitando a realização de alguma tarefa.

Sistemas Operacionais

Um Sistemas Operacional (SO) é um programa que gerencia recursos de hardware do computador. Assim ele gerência a execução de programas, mantém a comunicação com o usuário e gerência os recursos de E/S (Entrada e Saída, do ingles I/O Input e Output).

Os principais SO são:

  • Windows (XP, Vista, 8, 10, 11);

  • Linux (Mint, Ubuntu, Debian, Arch etc);

  • MacOS;

  • Android;

  • iOS;

  • Chrome OS.

Nós usamos o termo Linux para nos referir aos SOs que utilizam o Kernel Linux, portanto Linux é o Kernel (núcleo) de um sistema, não o sistema operacional completo, o correto é mencional o sistema como distribuição Linux, mas você pode continuar falando Linux como SO, não é o mais correto, mas na fala cotidiana não há problemas.

Programas Aplicativos

Particularmente não acho necessária a ideia de subdividir os programas em diversos tipos/categorias (Aplicativos, Utilitários e Básico), mas saiba que os programas aplicativos servem para adicionar funções ao SO para a realização de tarefas do usuário, dentre eles, se destacam:

  • Editores de Texto (eg. MS Word, Libreoffice Writer, LaTex);

  • Editores de Apresentação (eg. MS Power Point, Libreoffice Impress);

  • Editores de Planilha (eg. MS Excel, Libreoffice Calc);

  • Editores de Código (eg. Sublime Text, Atom, Scilab Editor, Portugol Studio, Code::blocks);

  • Navegadores de internet (eg. Chrome, FireFox);

E são, principalmente, estes tipos de programa que você irá desenvolver, não é incrível?!!!

Pastas e Arquivos

Um SO costuma ter pastas e arquivos, da mesma forma que seu escritório tem pastas e papeis (arquivos), o primeiro armazenam coisas, geralmente arquivos, e o segundo armazena dados. Assim, nos computadores, você pode criar diversos arquivos, seja textos, imagens, vídeos, áudios, programas executáveis etc e armazená-los em pastas para melhorar a organização. Pode, ainda, colocar pastas dentro de pastas para ter uma organização ainda melhor. As pastas também são chamadas de diretórios, portanto não estranhe quando alguém lhe pedir para criar um diretório chamado Curso em algum local do armazenamento do computador.

Pastas no computador são como pastas/envelopes de papel e arquivos são como papeis, assim guardamos pápeis em envelopes e, até, podemos colocar envelopes dentro de envelopes.

Os arquivos tem formato e extensão, coisas que costumam dizer a mesma coisa, mas cada uma tem um significado diferente. O formato do arquivo é a forma como ele foi escrito, por exemplo um áudio tem um formato e um texto tem outro formato, da mesma forma que no mundo real um formulário para matrícula na Universidade Federal de Ouro Preto tem um formato e o formulário de inscrição em um concurso de poemas tem outro, ou seja, o formato tem relação com como o arquivo foi salvo. Estes arquivos tem um nome e ao final tem um ponto seguido de letrinhas, estas letrinhas formam a extensão do arquivo. A extensão indica ao Sistema Operacional qual é o provável formato do arquivo, por exemplo quando o SO vê o arquivo algo.mp3 ele atribui um programa de reprodução de música para este arquivo, pois imagina que seja um áudio. Contudo, vale a pena destacar, que a extensão não é o formato, se eu tiver um arquivo 'teste.pdf' e renomeá-lo alterando apenas a sua extensão para 'teste.mp3' não terei um áudio, mas um arquivo em formato PDF e extensão MP3, isso confundirá o Sistema que tentará abrir com um reprodutor de áudio, mas sem sucesso. Para você, usuário de Windows, alterar a extensão parece algo impossível, mas isso só acontece porque o Windows costuma ocultar a extensão dos arquivos em seu programa Windows Explorer, ela continua lá, mas você so vê arquivos com nome, como teste.

Formato do arquivo é diferente de extensão do arquivo, porém costumam apontar para a mesma ideia.

Caso você esteja programando e criando arquivos em um determinado formato/extensão, como .c em Linguagem C, e seu computador não esteja abrindo o arquivo com duplo clique, ou seja, seu computador não esteja reconhecendo a extensão nem quem a abre, recomendo clicar com o botão direito do mouse sobre o arquivo e escolher a opção Abrir com... e definir um programa padrão para esta extensão, como o Code::Blocks se estiver instalado.

Enviando arquivos e códigos por e-mail

Como você verá nos próximos capítulos, códigos são, em grande parte, conjunto de textos ou comandos escritos em arquivos de texto, o que muda é a extensão, mas o formato é sempre texto puro. Ou seja, você cria um código em linguagem C e cria um arquivo de texto com formato Texto Puro e extensão .c, portanto para enviar por e-mail basta você anexar este arquivo ao corpo do e-mail e enviar. Contudo, caso precise enviar muitos arquivos de uma vez, sugiro criar uma pasta (diretório) e colocar todos os arquivos de código dentro, então selecionar a pasta ou todos arquivos dela e usar alguma opção do menu de contexto (botão direito do mouse) do sistema operacional que crie arquivos zipados, compactados ou em formato .rar.

Sistema Binário e Principais Unidades

Tudo no computador se torna, em algum momento, binário. Isso significa que no final é tudo um emaranhado de uns e zeros (sistema de números binário). Se pensarmos apenas na representação tradicional do sistema binário, poderiamos ter os seguintes números:

Tabela 2.1. Números decimais e binários.

Decimal

Binário

0

0

1

1

2

10

3

11

4

100

5

101

6

110

7

111

8

1000

9

1001

10

1010

"Existem 10 tipos de pessoas, as que sabem binário e as que não sabem." Frase cômica comum na internet.

Esses números binários são utilizados para formar novas unidades, um dígito binário é chamado de bit e um conjunto de 8 bits se torna um byte. Assim temos as unidades bit e byte que são de extrema importância na computação. Essas unidades podem utilizar prefixos para representar múltiplos dessas unidades, vale ressaltar que os sistemas na computação utilizam 1024 como múltiplo e não 1000 como no sistema convencional, como o metro. Ass temos os prefixos: kilo (1024 ou 2^10), Mega (1024*1024 ou 1024^2 ou 2^20), Giga (1024*1024*1024 ou 1024^3 ou 2^30), Tera (1024^4 ou 2^40), Hexa (1024^5 ou 2^50) e, assim por diante. Dessa forma temos a seguinte tabela abaixo, a conversão é feita multiplicando por 1024 quando for para uma unidade menor e dividindo por 1024 quando for para uma unidade maior, por exemplo, 1024MB (megabyte) são 1GB (gigabyte) e 1MB são 1024 KB (kilobytes). Perceba que se a sigla está com o B maiúsculo é byte e se tiver com o b minúsculo é bit, logo Mb é megabit e MB é megabyte.

Você deve estar se perguntando sobre a sua velocidade de internet que é de 10 megas, mas faz o download a, no máximo, 1,25 MB. Não há nada de errado, é apenas uma questão de unidade, a internet é contratada em megabits, assim você tem 10 megabits, e o download é em megabytes, como então realizamos a conversão? Se 1 byte são 8 bits, então 1 MB são 8 Mb, entao as quisermos converter de bits para bytes basta dividir o valor por 8, logo 10 MB dividido por 8 resulta em 1,25 MB.

10 Megabits são 1.25 Megabyte, pois 1 megabit é 1/8 megabyte ou 0.125 megabyte.

Um outro caso do cotidiano é o do HD e outros dispositivos de armazenamento, onde você compra um HD de 1 TB, mas quando abre só tem cerca de 931 GB, aqui o problema é outro, é uma questão cultural, quase uma enganação, onde o usuário perde, pois lembra que as unidades usam múltiplos de 1024? No caso de HD e afins eles usam 1000, como no sistema decimal, logo você perde 24 bytes por KB. Vamos fazer umas contas para você entender melhor.

A indústria usa as unidades relacionadas ao byte com múltiplos de 1000 e não 1024 que é o correto, logo 1TB tem, para a indústria, 1.000.000.000.000 bytes, então...

Partindo de 1.000.000.000.000 bytes. Se convertermos para kbytes teremos:

1.000.000.000.000/1024=976.562.500KB1.000.000.000.000 / 1024 = 976.562.500 KB

Convertendo o novo valor para megabytes teremos:

976.562.500/1024 =953.674,31MB976.562.500 / 1024 ~= 953.674,31 MB

Convertendo esse novo valor para GB teremos:

953.674,31/1024 =931,32GB953.674,31 / 1024 ~= 931,32 GB

No final você acaba perdendo muito espaço, mas não há o que fazer, a indústria já acostumou a ser assim e pronto.