Академический Документы
Профессиональный Документы
Культура Документы
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
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,
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.
Introducao a programacao.
10
Introducao a programacao.
11
Introducao a programacao.
{
// (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
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
Introducao a programacao.
15
Introducao a programacao.
16
Introducao a programacao.
17
Introducao a programacao.
18
Introducao a programacao.
19
Introducao a programacao.
20
Introducao a programacao.
21
Introducao a programacao.
22
Introducao a programacao.
23
Introducao a programacao.
24
Introducao a programacao.
25
Introducao a programacao.
26
Introducao a programacao.
27
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
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.