Вы находитесь на странице: 1из 32

Aula

Introducao a` Programacao
Andre Duarte Bueno, Dr. Eng.

16 de abril de 2015

Introducao a programacao.

Conte
udo
apresentaremos o conceito de software,
o que
e um programa, um software,
diferen
cas entre software livre e software proprietario,
diferentes tipos de interface dos programas,
kernel num
erico,
linha de comando,
modo texto,
gr
afica,
qual tipo de software voc
e deve desenvolver,
resumo e exerccios

Introducao a programacao.

Programas e softwares
O objetivo de um programa de computador e facilitar a vida do usuario, aumentar sua produtividade - principalmente para a realizacao
de tarefas repetitivas e possibilitar uma comunicacao e interacao com o mundo de forma mais efetiva, rapida e globalizada.
Ja e possvel a um usuario de computador escrever documentos, montar planilhas, fazer graficos e apresentacoes, enviar e receber
mensagens e arquivos, fazer transacoes bancarias com seguranca, montar projetos de engenharia, navegar na Internet, ouvir m
usicas, ver
filmes e realizar diversas outras atividades de rotina e de lazer.
Numa passagem rapida, podemos citar programas do dia a dia como o Office (Power Point, Excel, Word), OpenOffice (Impress,
Calc, Write), Internet Explorer, Firefox, E-mail, Orkut, Players, programas tpicos de servidores, como SSH, Telnet, FTP, programas de
engenharia (Octave, Gnuplot, Matlab, Scilab, Autocad) e programas para o desenvolvimento de software (g++, make, gdb, ddd, cvs,
cervisia, kdevelop, glade). Como podemos ver, temos `a nossa disposicao programas livres e proprietarios, com as mais variadas interfaces
e formas de uso.

Introducao a programacao.

O que
e um programa, um software?
Software ou programa de computador e uma sequ
encia de instrucoes a serem seguidas e/ou executadas,
na manipulac
ao, redirecionamento ou modificacao de um dado/informacao ou acontecimento. Quando um
software est
a escrito usando instrucoes que podem ser executadas diretamente por um processador dizemos
que est
a escrito em linguagem de maquina. O dispositivo mais conhecido que dispoe de um processador
e o computador. Existem outras maquinas programaveis, como telefone celular, maquinas de automacao
industrial, calculadora, etc. Um programa e feito usando Linguagens de Programacao. [autores, ].

Introducao a programacao.

Eu prefiro uma definicao mais simples, como: conjunto de instrucoes logicas, em linguagem de maquina, utilizadas
para realizacao de tarefas de nosso cotidiano por intermedio de um computador.
Formalmente nao existe diferenca entre o conceito de software e programa. Mas particularmente uso o termo
software, para um programa com interface grafica amigavel e documentacao disponibilizada. Costumo usar o termo
programa para um sistema que tem uma interface pobre e nao tem documentacao (ou e mal documentado); Observe
que essa e uma diferenciacao de que gostamos de fazer, embora outros autores tenham suas proprias definicoes.

Introducao a programacao.

Defini
c
ao de software propriet
ario e software livre
A seguir, serao apresentadas a definicao e as caractersticas dos softwares proprietarios e dos softwares livres.
Veja maiores detalhes nas referencias:
[GNU, , http://www.fsl.org, 2004, Livre, ].
[Anais, 2000, Queiroz, , et all., 2003].

Introducao a programacao.

Defini
c
ao e caractersticas do software propriet
ario
Veja a seguir as principais caractersticas do software proprietario:
Segundo a refer
encia [autores, ], o software proprietario e um conceito criado por empresas de software com

a intencao de proteger o seu produto de qualquer tipo de alteracao. Sua licenca probe a distribuicao ou copia
sem a autorizacao do proprietario.
Possui licen
ca proprietaria, nao podendo ser copiado em outros computadores, pois o usuario compra uma

licenca de uso para um computador e sistema especfico.


desenvolvido por empresas comerciais como Microsoft, Borland etc.
E
N
ao pode ser modificado, uma vez que o codigo-fonte nao e distribudo.
Possui suporte oficial, geralmente bem documentado.

Introducao a programacao.

Defini
c
ao e caractersticas do software livre
Veja a seguir as principais caractersticas do software livre:
Garante ao usu
ario plenas liberdades de uso, acesso e modificacao do codigo-fonte, copia e publicacao de

versoes modificadas.
A licen
ca GPL e a licenca de software livre mais utilizada no mundo, mas existem outras licencas de software

livre, como: BSD, LGPL, Artistic Licence, CC. A caracterstica e que qualquer trabalho derivado de um
software livre obrigatoriamente deve permanecer livre.
Na maioria dos casos n
ao possui suporte oficial (mas existem excecoes como o RedHat Enterprise, da RedHat,

e o SUSE Linux Enterprise, da Novell).


Nem sempre
e bem documentado.

Introducao a programacao.

O que
e GNU?
Acronimo para GNU, nao e UNIX. GNU e o nome de um sistema operacional completo e compatvel com
UNIX escrito em 1983 por Richard Stallman e in
umeros hackers da comunidade de software livre espalhados pela
internet.
O que
e Linux?
Clone livre do kernel do UNIX, escrito a partir do zero por Linus Torvalds, que contou com a ajuda de um
grupo de programadores espalhados pela internet (isto e, o Linux e somente um kernel). Foi projetado para estar
em conformidade com o POSIX e com a Single Unix Specification.
O que
e GNU/Linux?
o sistema operacional GNU totalmente livre que utiliza o Linux como kernel; sendo a variante mais conhecida
E
do sistema GNU.

Introducao a programacao.

Exemplos de softwares livres e propriet


arios
Exemplo de sistemas operacionais propriet
arios:
Windows, Mac OS X, Unix
Exemplo de sistemas operacionais livres:
GNU/Linux, Free-BSD
Exemplos de programas propriet
arios:
Microsoft Office, Internet Explorer, Borland Builder C++
Exemplos de programas livres GPL (equivalentes):
OpenOffice, Firefox, Kdevelop, Glade, Qt Designer

Introducao a programacao.

Tipos de interface de um programa/software


A interface de um programa e a forma como ele interage com o usuario.
Nesta secao apresentaremos quatro tipos de interface de programas:
Um programa sem nenhum tipo de interface kernel num
erico.
Um programa com interface via linha de comando.
Um programa com interface em modo texto.
Um software com interface em modo gr
afico.

10

Introducao a programacao.

11

Um programa sem interface (kernel num


erico)
De uma maneira geral, um kernel numerico e um programa sem nenhum tipo de interface com o usuario, sendo
utilizado para realizacao de algum processamento de dados. Caractersticas:
N
ao tem interface com o usuario (entradas e sadas).
Tem como objetivo realizar algum processamento, geralmente um processamento pesado, ou a realiza
cao de

tarefas bem especficas.


Uma documenta
cao simplificada pode ou nao estar disponibilizada.

Introducao a programacao.

// Exemplo de rotulagem de imagens 3D


#include <iostream>
#include <TRotulador/TRotulador3D.h>
int

main(int argc, char* argv[])

{
// (1) Cria rotulador e carrega imagem
TRotulador3D rot("imagem.pbm");
// (2) Executa rotulagem
rot.Go();
// (3) Salva resultado em disco
rot.Write("rotulada.pgm");
return 0;
}

12

Introducao a programacao.

13

Um programa com interface via linha de comando


Um programa pode ser desenvolvido de forma a receber a entrada do usuario utilizando a linha de comando.
Como exemplo, temos os programas dir e ls. Caractersticas:
A passagem dos par
ametros e feita na chamada do programa, via linha de comando.
Os par
ametros podem ser opcionais como em ls -lah, dir /w .

Para ver opcoes do programa ls, abra um terminal e digite ls - -help ou man ls.
A sada de dados
e opcional, pode ser para tela, para um arquivo de disco ou para outro dispositivo.
Este tipo de programa permite o uso de redirecionamentos (exemplo: ls > saida.txt), uso de pipes (ex: ls |

sort).

Introducao a programacao.

14

Um programa com interface em modo texto


Um programa com interface em modo texto inclui entrada e sada de dados usando uma interface simplificada
(teclado e monitor). Caractersticas:
Apresenta interface simplificada, em modo texto.
As entradas s
ao executadas via teclado e as sadas, usando a tela, geralmente por meio de um terminal.
Muito utilizado em servidores, em programas para manuten
cao do sistema, em programas cientficos, em

engenharia e em sistemas antigos (legados).

Introducao a programacao.

15

Figura 1: Programa de reconstrucao tridimensional.

Introducao a programacao.

16

Introducao a programacao.

17

Figura 2: Programa Octave.

Introducao a programacao.

18

Um programa com interface em modo texto e mecanismo de recuperac


ao
O programa do grafo de conexao serial, e utilizado para determinar a permeabilidade de rochas usando representacoes 3D (imagens tridimensionais). Sua entrada e a imagem gerada pelo programa de reconstrucao. Observe
que o programa tem uma interface em modo texto, mas apresenta alguns diferenciais interessantes:
Salva valores parciais da simula
cao em disco.
Permite o reincio do programa ap
os queda de energia.
N
ao repete a simulacao de imagens ja processadas (trabalha com lista de imagens).

Introducao a programacao.

19

Introducao a programacao.

20

Figura 3: Programa com interface em modo texto e mecanismos de recuperacao.

Introducao a programacao.

21

Um software com interface em modo gr


afico
O software Anaimp apresentado na Figura 5(a) e um software educativo para analise de imagens e que possui
interface em modo grafico. Caractersticas:
Tem programa para instala
cao automatizada.
Tem interface gr
afica e amigavel (menus, botoes, dialogos, barra de tarefa e de status).
Tem previs
ao de impressao, possibilidade de desenho das imagens, sistema de controle dos processamentos

(exemplo: visualizacao passo a passo dos processos realizados).


Tem manual do usu
ario.

Introducao a programacao.

22

Figura 4: Programas com interface grafica - O software Imago.

Introducao a programacao.

23

Introducao a programacao.

24

Figura 5: Programas com interface grafica - O software Anaimp.

Introducao a programacao.

Que tipo de software devo desenvolver?


Devo desenvolver software propriet
ario ou software livre?
Devo desenvolver software com interface em modo texto ou em modo gr
afico?

25

Introducao a programacao.

26

Devo desenvolver software propriet


ario ou software livre?
A resposta para esta questao nao e facil. Voce tera de analisar os pros e contras de cada modelo, e entao escolher
o modelo de desenvolvimento de software que mais se aproxima de seu perfil.
Como sou defensor do modelo de software livre, aconselho a leitura das seguintes referencias:
Filosofia do SL? [GNU, , http://www.fsl.org, 2004]
Porque usar SL? [Queiroz, ]
Quem paga pelo SL?[Livre, , et all., 2003]

Introducao a programacao.

27

Devo desenvolver software com interface em modo texto ou em modo gr


afico?
Esta resposta e mais facil. Se o programa e um programa cientfico, que envolve calculos/processamentos pesados
e que tem pouca necessidade de interacao com o usuario, voce pode usar uma interface em modo texto. No entanto,
se o programa requer uma interacao constante com o usuario, a opcao correta e o software com interface em modo
grafico.
Dica: tente montar o programa usando os conceitos profissionais da engenharia de software, pois viabilizam o
desenvolvimento de softwares complexos e facilitam a migracao de um programa com interface em modo texto
para interface em modo grafico.

Introducao a programacao.

28

Resumo do captulo
Neste primeiro captulo aprendemos o conceito de software, de programa e as diferencas entre o software livre e
o software proprietario. Ademais, foi colocada a questao sobre o que desenvolver: software proprietario ou software
livre.
Vimos que um programa de computador pode ter diferentes tipos de interface e que um kernel numerico e um
programa sem interface. Um programa em linha de comando, por sua vez, recebe seus parametros na chamada
do programa e pode ou nao apresentar uma sada na tela do computador. Um programa em modo texto, como o
Octave, apresenta uma interface simplificada, em modo texto, e e utilizado por usuarios experientes. Ja os softwares
mais amigaveis contam com interface grafica com menus, botoes e dialogos que facilitam seu uso.
No proximo captulo apresentaremos uma breve introducao a` programacao orientada a objeto.

Introducao a programacao.

29

Exerccios
1. Explique com suas palavras o que
e um programa e porque desenvolvemos programas de computador?
2. Quais as principais diferen
cas entre sistemas operacionais livres e proprietarios?
3. Porque devemos ler a licen
ca de um software quando o instalamos?
4. Voc
e ja deve ter utilizado um navegador para fazer o download de arquivos pela internet (como o Firefox/-

Explorer), mas existem programas em modo texto, como o FTP e o Wget (http://www.gnu.org/software/
wget/wget.html), que tambem sao utilizados para fazer download de arquivos. Descreva quais as vantagens
e desvantagens dos programas em modo grafico e dos programas em modo texto.
5. Qual a vantagem de um programa que pode ser reinicializado automaticamente pelo sistema?
6. Um programa escrito por voc
e pode usar componentes fornecidos por um programa livre como o OpenOffice

Impress? E se o programa fosse o Microsoft Word, voce poderia utilizar componentes do Microsoft Word em
seu programa?

Introducao a programacao.

30

7. Um sistema de engenharia gera uma quantidade enorme de dados, sendo necess


ario fazer 100 graficos. Estes

graficos podem ser mais rapidamente feitos em uma planilha como o OpenOffice Calc ou em programas em
modo texto como o
Gnuplot (http://www.gnuplot.info/)?
8. Quais as aplica
coes e vantagens de programas do tipo kernel numerico?
9. Quais os programas com interface via linha de comando que voc
e costuma utilizar?
10. Fa
ca um breve historico de programas novos e antigos utilizados na sua area de estudo. Alem de perquisar na

internet, converse com professores e profissionais antigos; tente entender as transformacoes que tem ocorrido
no mundo da informatica.
Dica: no final de cada aula, dedique de 5-10 minutos para rever o que foi visto em sala. Em casa estude mais
1-2horas.

Refer
encias Bibliogr
aficas
[Anais, 2000] Anais (2000). Anais do 1 Forum Internacional de Software Livre 2000. UNISINOS, Porto Alegre.
[autores, ] autores, V. Wikipedia - http://pt.wikipedia.org/wiki. In Wikipedia.
[et all., 2003] et all., S. A. (2003). Software Livre e Inclusao Digital. CONRAD, Sao Paulo.
[GNU, ] GNU, C. O que e o software livre? http://www.gnu.org/philosophy/free-sw.pt.html.
[http://www.fsl.org, 2004] http://www.fsl.org (2004). Filosofia de Software Livre.
[Livre, ] Livre, C. S.
Declaracao de barcelona
http://www.softwarelivre.org/forum2004/news/2297.
[Queiroz, ] Queiroz, R. Porque usar software livre.

desafios

para

ampliacao

consolidadcao

do

software

livre.

Вам также может понравиться