Baixe o app para aproveitar ainda mais
Prévia do material em texto
EA D CRC Caderno de Referência de Conteúdo 1. INTRODUÇÃO Seja bem-vindo! Você está iniciando o estudo da disciplina Computação, na qual terá a possibilidade de aprender como desenvolver programas de computador utilizando a linguagem de programação C. Para facilitar a sua compreensão, o conteúdo foi dividido em seis unidades. Juntamente com este Caderno de Referência de Conteúdo (CRC), você encontrará o Caderno de Atividades e In- teratividades (CAI), com os exercícios e as atividades práticas que complementarão seu estudo. Durante o estudo desta disciplina, você conhecerá desde os conceitos fundamentais para construção de programas, como estruturas sequenciais, estruturas de controle e estruturas de dados, até aspectos avançados, como programação modular e alocação dinâmica de memória. Um dos aspectos fundamentais para o desenvolvimento de programas é o armazenamen- to de informações. Para isso, estudaremos como manipular arquivos por meio da linguagem de programação C. Com o conteúdo estudado nesta disciplina, além de criar arquivos no sistema operacional, saberemos como gravar e recuperar informações. Também é fundamental que você, como desenvolvedor, acompanhe a evolução das tec- nologias utilizadas no desenvolvimento de aplicações. Para isso, não utilize apenas este material como fonte de informação. É essencial que complemente sua formação consultando outras fon- tes, como livros, revistas e internet. Além disso, não se esqueça de compartilhar suas experiên- cias por meio dos Fóruns e da Lista na Sala de Aula Virtual, pois assim, além de contribuir para o aprendizado de outras pessoas, você consolidará seu conhecimento. © Computação Claretiano - REDE DE EDUCAÇÃO 14 Após essa introdução aos conceitos principais da disciplina, apresentamos a seguir, no tópico Orientações para o Estudo da Disciplina, algumas orientações de caráter motivacional, dicas e estratégias de aprendizagem que poderão facilitar o seu estudo. Que você tenha um bom e proveitoso estudo! 2. ORIENTAÇÕES PARA O ESTUDO DA DISCIPLINA Abordagem Geral da Disciplina Neste tópico, apresenta-se uma visão geral do que será estudado nesta disciplina. Aqui, você entrará em contato com os assuntos principais deste conteúdo de forma breve e geral e terá a oportunidade de aprofundar essas questões no estudo de cada unidade. No entanto, essa Abordagem Geral visa fornecer-lhe o conhecimento básico necessário a partir do qual você pos- sa construir um referencial teórico com base sólida – científica e cultural – para que, no futuro exercício de sua profissão, você a exerça com competência cognitiva, ética e responsabilidade social. Vamos começar nossa aventura pela apresentação das ideias e dos princípios básicos que fundamentam esta disciplina. A disciplina Computação faz parte dos cursos de Graduação e tem como objetivo principal a iniciação do aluno no desenvolvimento de programas de computador. Nesta disciplina, você conhecerá a linguagem de programação C e as principais estruturas utilizadas na elaboração de programas. Antes de iniciar o estudo específico sobre a programação, é importante que alguns aspec- tos a respeito da organização dos computadores sejam apresentados. As máquinas de computar, popularmente conhecidas como computadores, têm como principal objetivo o processamento de informações. Para isso, um fluxo linear de transformação é realizado em dados, os quais são inseridos por meio de um dispositivo de entrada. Os dados são processados, e, por fim, apresen- tados em periféricos conhecidos como dispositivos de saída. O processamento das informações é efetuado por um componente específico do compu- tador, conhecido como processador. Essa parte integrante é fundamental para o funcionamento do sistema e geralmente é conhecida como o “cérebro do computador”. Para que as informa- ções sejam processadas, o processador possui um conjunto finito de instruções, as quais reali- zam tarefas específicas. Por exemplo: o processador possui uma instrução destinada à realização de contas de so- mar, conhecida como sum. Todas as informações processadas no processador são armazenadas em um componente denominado memória principal. A memória principal mantém os dados enquanto o programa de computador está sendo executado, por isso esse tipo de memória é conhecida como volátil. Além disso, o computador pode utilizar informações armazenadas de maneira persistente. Ele utiliza um tipo específico de memória conhecida como memória secun- dária. Os principais exemplos de memória secundária são os discos rígidos, o CD-ROM (Compact Disc Read Only Memory – Disco Compacto Memória Somente de Leitura), o DVD-ROM (Digital Versatile Disk Read Only Memory – Disco Versátil Digital Somente de Leitura), o BD-ROM (Bluray Disc Real Only Memory), entre outros. Para que o computador seja capaz de processar as informações, é necessário que os dados sejam alimentados por meio dos dispositivos de entrada. Esses dispositivos têm como objetivo carregar os dados no computador. Os principais exemplos de dispositivo de entrada são o mouse 15© Caderno de Referência de Conteúdo e os digitalizadores. Por outro lado, a funcionalidade de apresentação de dados por meio do computador é executada por meio dos dispositivos de saída. Nesses dispositivos, os dados po- dem ser apresentados no formato digital e apenas para visualização, como, por exemplo, nos monitores, bem como apresentados no formato impresso, utilizando para isso os diversos tipos de impressora, como matricial, a jato de tinta e a laser. Conforme foi comentado, o principal objetivo de um computador é o processamento de informações, ou simplesmente a transformação de dados. Para que esse processamento seja realizado, o computador utiliza um conjunto de instruções que são interpretadas pelo proces- sador. Essas instruções permitem disparar todas as funcionalidades que o computador pode executar e para isso precisam ser escritas, ou codificadas, em uma linguagem que o computador entenda perfeitamente. As linguagens entendidas pelo computador são conhecidas como lin- guagens de programação. De modo geral, uma linguagem de computador possibilita que um programador desenvol- va programas de computador, de maneira que o computador seja capaz de executar um conjun- to determinado de ações, as quais realizam os mais variados tipos de tarefas. Podemos construir programas de computador, por exemplo, para calcular a média final de uma disciplina, ou ainda para organizar as informações financeiras de uma empresa. A complexidade do programa está intimamente relacionada com o número de instruções, ou linhas de códigos, necessárias no programa. Devemos também atentar para o número de linguagens de programação existentes atu- almente. Uma simples pesquisa em um site de busca pelo termo linguagens de programação retornará alguns milhares de resultados. Além disso, essa diversidade pode tornar a produção de computadores uma tarefa altamente complexa, uma vez que os computadores teriam de entender os mais variados tipos de linguagem. Para simplificar esse problema, os computadores são capazes de entender uma única lin- guagem de programação, conhecida como linguagem de máquina. Por outro lado, a linguagem de máquina, também referenciada como código de máquina, possui uma estrutura pouco orga- nizada e é pouco intuitiva para seres humanos. Dessa maneira, o desenvolvimento de progra- mas de computador utilizando os códigos de máquina pode ser considerado uma tarefa pratica- mente impossível nos dias atuais. Em sistemas operacionais Microsoft, tais como o Microsoft Windows 7, Microsoft Windows XP, entre outros, é possível visualizar os códigos de máquina utilizados para construção dos pro- gramas utilizando o comando debug – por exemplo, debug programa.exe. Para simplificar a construção de aplicações, o programadorpode utilizar um conjunto de instruções que se referem às operações básicas que o computador pode executar. Essas ins- truções são de mais simples compreensão e são conhecidas como mnemônicos. Em termos práticos, os mnemônicos representam uma abreviação de um conjunto de instruções numéricas (hexadecimais) utilizadas nos códigos de máquina. As linguagens de programação que utilizam a simbologia de mnemônicos no desenvolvimento de programas são conhecidas como linguagens de montagem. Porém, é importante notar que mesmo construindo programas com linguagens de montagem, os mnemônicos não são entendíveis pelo computador. Assim, após construir o programa, é necessário realizar um processo de tradução da linguagem de montagem para a linguagem de máquina. Esse procedimento é realizado por programas específicos, conhecidos como montadores ou assemblers. © Computação Claretiano - REDE DE EDUCAÇÃO 16 Com a evolução dos computadores, tanto em relação aos componentes físicos (hardware), quanto aos componentes lógicos (software), a complexidade do desenvolvimento dos programas foi aumentando. Para simplificar a escrita e principalmente para agilizar o processo de elabora- ção dos programas de computadores, foram criadas linguagens de programação mais próximas ao cotidiano dos programadores. Essas linguagens são conhecidas como linguagens de progra- mação de alto nível. Por meio delas, as instruções de programação foram agrupadas em um úni- co comando. Por exemplo, se com uma linguagem de máquina era necessário escrever algumas dezenas de linhas para exibir o nome de uma pessoa na tela ou o resultado do cálculo de uma equação, com as linguagens de máquina essas linhas foram reduzidas para uma única instrução. Na linguagem de programação Pascal, o comando que exibe uma informação na tela é denomi- nado writeln, enquanto na linguagem de programação C, que será abordada neste material, o comando é chamado printf. Com a evolução das linguagens de programação, o desenvolvimen- to de programas de computador se tornou algo fascinante. Quando você utiliza uma linguagem de programação para escrever programas, as instru- ções usadas no desenvolvimento são conhecidas como código-fonte do programa, ou simples- mente código-fonte. A principal vantagem em utilizar linguagens de alto nível para elaboração de códigos-fontes está na relação entre a linguagem de programação e o algoritmo. O primeiro passo para a elaboração de um programa de computador com qualidade é a codificação do al- goritmo. Um algoritmo representa a sequência organizada de instruções que deverão ser reali- zadas para a execução de uma determinada tarefa. Os algoritmos são especificados por meio de uma linguagem comum aos seres humanos, a qual podem ser definida, por exemplo, utilizando português estruturado. Neste caso, você pode utilizar instruções do tipo escreva, leia, dentre outras. Com a elaboração do algoritmo, torna-se mais simples o desenvolvimento do programa com a linguagem de alto nível, pois é necessária apenas a tradução do algoritmo para a lingua- gem de programação escolhida. O processo de desenvolvimento de um programa utilizando uma linguagem de programa- ção envolve uma etapa fundamental, que é a verificação do código-fonte. Essa verificação tem como objetivo avaliar se o código foi escrito de maneira correta, a partir das instruções disponí- veis na linguagem de programação escolhida. Todo esse processo é gerenciado e realizado por um programa específico, conhecido como compilador. De forma prática, o compilador verifica o código-fonte do programa, e caso as instruções tenham sido codificadas de maneira correta transforma o código-fonte em código-objeto. O código-objeto representa o código compilado do programa; porém, não permite sua execução. Para transformar um código-objeto em um programa executável, é necessário outro pro- grama específico, denominado linker. Na linguagem de programa C, por exemplo, o processo completo de compilação de um programa é realizado em três fases: programa.c à programa. obj à programa.exe. Os programas de computador são criados em programas específicos conhecidos como ambientes de desenvolvimento, do inglês Integrated Development Environment, ou simples- mente IDE. Esses ambientes oferecem aos desenvolvedores de programas um conjunto imenso de recursos capazes de facilitar e simplificar a elaboração do programa. Além disso, permitem que os programas sejam exaustivamente testados para que nenhum erro seja detectado após o lançamento – ou disponibilização – da versão final do programa. Para esta disciplina, você aprenderá como elaborar programas utilizando a linguagem de programação de alto nível C. Assim, para a codificação, serão necessárias a instalação e a confi- guração de um ambiente de desenvolvimento integrado. Para usuários de sistemas operacionais 17© Caderno de Referência de Conteúdo Microsoft, ou sistemas operacionais baseados em Linux, será possível utilizar um ambiente to- talmente gratuito chamado Code::Blocks. Outros ambientes de desenvolvimento também po- dem ser utilizados ao longo da disciplina, tais como Microsoft Visual C++, ou ainda o NetBeans. Fundamentos da linguagem de programação C A linguagem de programação C é uma linguagem estruturada muito utilizada para o desen- volvimento de aplicações comerciais e científicas. Foi criada em 1970 pelo pesquisador Dennis Ritchie. No início da década de 1970, a linguagem C era empregada na construção de programas para o sistema operacional Unix e a estrutura sintática da linguagem foi elaborada com base em uma antiga linguagem de programação conhecida como BCPL. Os programas construídos utilizando a linguagem de programação C podem ser usados em qualquer sistema operacional, como nas diversas edições do Microsoft Windows, nas versões do sistema operacional Linux e Unix, e também nos sistemas da Apple, como o MacOS. Um fato importante a respeito da portabilidade da linguagem de programação C é a necessidade de compilação do programa no sistema operacional em que ele será executado. Assim, para que um programa escrito em linguagem C possa ser executado no ambiente Microsoft Windows, é necessário que ele seja compilado por um compilador específico para Windows. Da mesma maneira, para que o programa funcione nos sistemas operacionais abertos, como o Linux, por exemplo, é preciso compilar o programa com o compilador destes ambientes. Outro fato funda- mental e que não pode ser interpretado de maneira equivocada é que a linguagem de progra- mação C é portável, porém não é multiplataforma. A estrutura mínima de um programa na linguagem de programação C precisa inicialmente da inclusão de cabeçalhos por meio da diretiva include. Os cabeçalhos podem ser considerados bibliotecas de programação, nos quais as diversas funções previamente definidas podem ser utilizadas pelos programadores. No mínimo, um programa de computador codificado utilizando a linguagem C precisa da inclusão da biblioteca stdio.h. Essa biblioteca é responsável pelos co- mandos de entrada e saída denominados scanf e printf. O comando conhecido como printf é necessário para exibir informações na tela. Com ele, o programador pode exibir diversas informações processadas ao longo das linhas do programa. Esse comando também pode ser adequado para exibir na tela valores referentes aos conteúdos de variáveis. O outro comando, denominado scanf, é empregado na leitura de informações for- necidas pelo usuário. Essas informações são entradas por meio de um teclado, em que o usuário poderá digitar qualquer tipo de informação. Porém, é importante salientar que o tipo de infor- mação recebida pelo comando scanf deve estar de acordo com o tipo de variável utilizada para receber esse valor, caso contrário o programa poderá apresentar um erro em sua execução. Esse tipo de erro é muito comum nos programas da linguagemde programação C, principalmente devido aos diferentes tipos de dados. O trecho de código a seguir demonstra um simples programa utilizando a linguagem de programação C. Neste exemplo, é possível notar a presença dos comandos de entrada e saída (printf e scanf). Além disso, no programa foi utilizado um dos conceitos mais fundamentais da progra- mação de computadores, que é denominado variável. Uma variável é um espaço de endere- çamento de memória reservado para armazenar informações utilizadas pelo programa. Essas informações podem ser resultantes de um cálculo matemático, ou, em alguns casos, podem ser o resultado da entrada do usuário fornecida por meio de um teclado. © Computação Claretiano - REDE DE EDUCAÇÃO 18 Para cada variável utilizada no programa de computador, um tipo está associado. A asso- ciação de um tipo a uma variável é conhecida como tipo de dados. Uma variável pode armaze- nar apenas informações do tipo a que está vinculada, e com isso poderá executar um conjunto de operações. Por exemplo: um tipo de dados para armazenamento de informações numéricas na linguagem de programação C é denominado int. Esse tipo é adequado para manipulação de valores numéricos inteiros, ou seja, que não possuam a parte fracionária. Um tipo inteiro permite o armazenamento de valores como -5, -32, -85, 0, 12, 48, 43452. Além disso, esse tipo permite a realização das seguintes operações: soma, subtração, multiplicação, divisão e resto da divisão. #include <stdio.h> //biblioteca do programa //programa principal void main() { //declaração das variáveis int a; int b; int c; //entrada de dados da variável “a” printf(“Informe o primeiro valor: “); scanf(“%i”,&a); //entrada de dados da variável “b” printf(“Informe o primeiro valor: “); scanf(“%i”,&b); //cálculo matemático que resulta na soma de “a” e “b” c = (a+b); //saída na tela printf(“O resultado da soma é %i \n”, c); } A linguagem de programação C possui um recurso interessante, denominado códigos de barra invertida. Esses códigos, que na verdade são caracteres, fornecem um suporte interes- sante para o controle das informações que são exibidas na tela. Por exemplo, o código de barra invertida denominado “\n” (leia-se barra n), é utilizado para mudança de linha. Em outras pala- vras, ele é empregado na quebra de linhas. Outro código bastante utilizado na construção dos programas é o “\t”, cujo objetivo é realizar uma tabulação horizontal das informações que estão sendo exibidas na tela. No exemplo apresentado, foi possível visualizar a utilização do código de barra invertida “\n”. Como na maioria das linguagens de programação, a linguagem C possui um conjunto de operações para realização de cálculos matemáticos. Esses operadores são conhecidos como operadores aritméticos e possuem um conjunto de símbolos que podem ser utilizados para formular as expressões. Na linguagem de programação C, a operação matemática de adição é representada pelo símbolo +, enquanto a operação de subtração é especificada pelo símbolo -. Além disso, existem também o operador matemático para multiplicação, representado pelo símbolo *, o operador matemático da divisão, cujo símbolo é /, e o operador que determina o resto da divisão em divisões inteiras, simbolizado por %. Outros operadores importantes na linguagem de programação C são: • operadores de igualdade, os quais são utilizados para estabelecer relações de equi- valência entre informações manipuladas pelos programas. Com esses operadores, é possível determinar a igualdade ou a diferença entre valores; 19© Caderno de Referência de Conteúdo • operadores relacionais, por meio dos quais é possível estabelecer comparações entre as informações manipuladas pelos programas, tais como “maior que”, “menor que”, “maior ou igual a”, “menor ou igual a”; • operadores lógicos, adequados para situações em que é necessário agrupar diversas expressões lógicas. A utilização desses operadores é muito semelhante aos operadores empregados na lógica matemática e o resultado de sua avaliação é associado às tabe- las verdade. Para cada operador lógico da linguagem de programação C é anexado um símbolo. Por exemplo: para o operador lógico que representa a operação de conjunção (e) são utilizados os símbolos “&&”, e a operação de disjunção (ou) é simbolizada pelos caracteres “||”. Estruturas de Controle A linguagem de programação C possui um conjunto de estruturas de controle que possi- bilita ao programador controlar o fluxo de execução dos programas. Essas estruturas são essen- ciais para a construção de qualquer tipo de programa de computador e são utilizadas também em aplicações comerciais e científicas. Na linguagem de programação C, as estruturas de contro- le são divididas em dois grupos, que são denominados “estruturas condicionais” e “estruturas de repetição”. As estruturas condicionais são utilizadas para determinar a direção do fluxo de execução no interior dos programas. Por meio da avaliação de uma expressão condicional, o programa poderá executar uma ou outra tarefa. Nesse contexto, a linguagem de programação C possui três estruturas capazes de especificar condições: 1) estrutura condicional simples: a execução de um determinado trecho de código de- pende da avaliação de uma condição, e o trecho será executado apenas e somente quando o resultado da avaliação for verdadeiro. Na programação, essa estrutura con- dicional é conhecida como if; 2) estrutura condicional composta: semelhante à estrutura condicional simples. A prin- cipal diferença em relação à anterior é o mapeamento do que será executado quando o resultado da avaliação condicional for falso. Assim, a estrutura condicional compos- ta determina o que será executado pelo programa tanto para o resultado for verda- deiro quanto para o resultado falso. Na programação, essa estrutura é representada pela instrução if...else; 3) estrutura de seleção múltipla: nesse tipo de estrutura, um determinado trecho de có- digo será executado a partir da avaliação mutuamente exclusiva de uma condicional. Dessa forma, considerando um conjunto de possibilidades de execução, o programa executará apenas um determinado trecho de código. Na linguagem de programação C, esse tipo de estrutura pode ser codificado por meio das instruções if...else if...else, ou também pela utilização de uma estrutura condicional denominada switch. As estruturas de repetição também fazem parte da estrutura de controle da linguagem de programação C. Uma estrutura de repetição permite a especificação de um laço de repetição no interior dos programas. Esses laços poderão ser executados uma única vez, mas também pode- rão ser executados várias vezes. Existe também a possibilidade de um laço de repetição não ser executado, a partir da avaliação da condicional associada ao critério de parada do laço. Na linguagem de programação C, as estruturas de repetição podem ser codificadas por meio de dois comandos: 1) for, o qual permite ao programador definir quantas vezes um trecho de código do programa será executado. Nesse tipo de estrutura, é necessário que uma variável de © Computação Claretiano - REDE DE EDUCAÇÃO 20 controle seja associada para contar o número de vezes que o trecho do código já foi repetido; 2) while, possibilita ao programador construir uma estrutura de repetição que será exe- cutada sempre que o resultado de uma expressão condicional for verdadeira. O fun- cionamento da estrutura de repetição while é muito semelhante ao for. Porém, com essa estrutura, é possível solucionar problemas em que não é previamente definido o número de vezes que um bloco de comandos deve ser repetido. Estrutura de Dados e Ponteiros A manipulação de grandes quantidades de informações na linguagem de programação C é realizada por meio de estruturas de dadoshomogêneas e heterogêneas. Além disso, existe a possibilidade de utilização da alocação dinâmica de memória, por meio de um recurso compu- tacional conhecido como ponteiros. Um vetor é uma estrutura de dados homogênea, na qual cada posição armazena uma in- formação do mesmo tipo. Por exemplo, uma estrutura do tipo vetor, também conhecida como arranjo, pode ser utilizada para armazenar as alturas de um conjunto de mil crianças em idade escolar. Nesse caso, é possível criar um vetor do tipo de dados float ou double. Além disso, tam- bém é permitida a criação de vetores de outros tipos, tais como int e char. Uma matriz também representa uma estrutura de dados homogênea, em que os dados são representados por meio de tabelas. Dessa forma, as informações são dispostas em linhas e colunas, e por meio da interseção de linha e coluna é possível atribuir ou recuperar uma infor- mação armazenada na matriz. Os registros representam um recurso computacional em que é possível agregar informa- ções de tipos de dados diferentes. Por isso, esse tipo de estrutura de dados é conhecido como heterogênea. Assim, em uma mesma estrutura de dados é possível associar dados inteiros, pon- to flutuante, caracteres, entre outros elementos. Na linguagem C, a definição de uma estrutura do tipo registro é especificada pela instrução struct. A alocação dinâmica de memória representa um recurso muito importante disponível na linguagem de programação C. Esse tipo de recurso é adequado para a solução de problemas em que não é possível determinar previamente a quantidade de informações que será manipulada. Para utilização de ponteiros na construção dos programas é necessário apenas incluir um símbo- lo de asterisco antes da especificação do nome da variável. Por exemplo, um ponteiro para uma variável do tipo int é declarado da seguinte forma: int *pInteiro. Programação modular A reutilização de código-fonte na programação de computadores é um recurso fundamen- tal para elaboração de sistemas com qualidade. A programação modular representa uma técnica eficiente para o reaproveitamento de código, e utiliza como estratégia a divisão do código em pequenas partes denominadas funções. Arquivos A manipulação de informações de maneira persistente é uma técnica que pode ser em- pregada por meio da utilização dos arquivos. Um arquivo permite que os dados manipulados pelos programas sejam armazenados em um dispositivo de memória secundária, tal como um disco rígido. 21© Caderno de Referência de Conteúdo Enfim, chegamos ao final de nossa abordagem, e esperamos que você tenha aproveitado ao máximo os tópicos apresentados. É muito importante destacar que apenas o estudo teórico da linguagem de programação C não será suficiente para seu aprendizado: é fundamental que você pratique! Para isso, instale o ambiente de desenvolvimento de sua preferência e comece desde já a programar! Glossário de Conceitos O Glossário de Conceitos permite a você uma consulta rápida e precisa das definições con- ceituais, possibilitando-lhe um bom domínio dos termos técnico-científicos utilizados na área de conhecimento dos temas tratados na disciplina Computação. Veja, a seguir, a definição dos principais conceitos desta disciplina: 1) Algoritmo: o algoritmo é a descrição de uma sequência de passos que deve ser segui- da para a realização de uma tarefa (Ascencio, 1999). 2) Arquivos: são utilizados para o armazenamento persistente de informações. Esse tipo de estrutura é capaz de guardar dados na memória secundária de maneira permanen- te. 3) Comandos de atribuição: para inserirmos os valores ou operações em uma variável, utilizamos os comandos de atribuição. Por meio deles, conseguimos adicionar um de- terminado valor na posição de memória reservada pela variável. 4) Comentário: é um recurso imprescindível para uma boa prática de programação. Por meio dos comentários, o programador pode documentar o algoritmo e, com isso, au- mentar a clareza do código. Um aspecto importante a ser destacado a respeito dos comentários é que eles são desconsiderados durante a execução do algoritmo ou do programa. Isso significa que eles não interferem no conteúdo do algoritmo; por isso, podemos escrever qualquer tipo de informação para facilitar seu entendimento. 5) Constante: é um dado definido no algoritmo que não pode ter seu valor modificado. O conceito de constante é que uma determinada informação não poderá ser alterada ao longo da execução. 6) Estrutura condicional: quando você utiliza uma estrutura condicional na elaboração de um algoritmo, é possível selecionar, com base em uma ou mais condições, qual parte do algoritmo deverá ser executada. 7) Estruturas de dados: estabelecem mecanismos para a organização dos dados, de for- ma que podemos trabalhar com as informações de maneira prática e eficiente. Além disso, elas são capazes de manipular grandes quantidades de informações. As estru- turas de dados também são conhecidas como variáveis compostas. São divididas em dois grupos: estruturas de dados homogêneas e estruturas de dados heterogêneas. 8) Estrutura de repetição: são recursos utilizados na construção de algoritmos e progra- mas que permitem ao programador definir quais blocos de instruções serão repetidos até que ocorra certa condição. 9) Identificador: é o nome de uma variável. O identificador possui regras muito bem definidas para a especificação de nomes. Além dos nomes das variáveis, os nomes dos algoritmos, das constantes e das sub-rotinas também são considerados identificado- res. 10) Programa: conjunto de instruções que realizam um determinado número de tarefas por meio do computador. 11) Programação modular: tem como objetivo a construção de algoritmo em pequenas partes, ou módulos, que são chamadas de sub-rotinas. 12) Variáveis: dados que podem ter seu valor alterado durante a execução do algoritmo. Quando você declara uma variável em um programa, significa que você está reser- vando um espaço da memória principal (RAM) para o armazenamento de uma de- © Computação Claretiano - REDE DE EDUCAÇÃO 22 terminada informação. O tamanho do espaço reservado depende do tipo de dados utilizado na variável. Esquema dos Conceitos-chave Para que você tenha uma visão geral dos conceitos mais importantes deste estudo, apre- sentamos, a seguir (Figura 1), um Esquema dos Conceitos-chave da disciplina. O mais aconse- lhável é que você mesmo faça o seu esquema de conceitos-chave ou até mesmo o seu mapa mental. Esse exercício é uma forma de você construir o seu conhecimento, ressignificando as informações a partir de suas próprias percepções. É importante ressaltar que o propósito desse Esquema dos Conceitos-chave é representar, de maneira gráfica, as relações entre os conceitos por meio de palavras-chave, partindo dos mais complexos para os mais simples. Esse recurso pode auxiliar você na ordenação e na se- quenciação hierarquizada dos conteúdos de ensino. Com base na teoria de aprendizagem significativa, entende-se que, por meio da organiza- ção das ideias e dos princípios em esquemas e mapas mentais, o indivíduo pode construir o seu conhecimento de maneira mais produtiva e obter, assim, ganhos pedagógicos significativos no seu processo de ensino e aprendizagem. Aplicado a diversas áreas do ensino e da aprendizagem escolar (tais como planejamentos de currículo, sistemas e pesquisas em Educação), o Esquema dos Conceitos-chave baseia-se, ainda, na ideia fundamental da Psicologia Cognitiva de Ausubel, que estabelece que a apren- dizagem ocorre pela assimilação de novos conceitos e de proposições na estrutura cognitiva do aluno. Assim, novas ideias e informações são aprendidas, uma vez que existem pontos de ancoragem. Tem-se de destacar que “aprendizagem” não significa, apenas, realizar acréscimos na es- trutura cognitiva do aluno; é preciso, sobretudo,estabelecer modificações para que ela se con- figure como uma aprendizagem significativa. Para isso, é importante considerar as entradas de conhecimento e organizar bem os materiais de aprendizagem. Além disso, as novas ideias e os novos conceitos devem ser potencialmente significativos para o aluno, uma vez que, ao fixar esses conceitos nas suas já existentes estruturas cognitivas, outros serão também relembrados. Nessa perspectiva, partindo-se do pressuposto de que é você o principal agente da cons- trução do próprio conhecimento, por meio de sua predisposição afetiva e de suas motivações internas e externas, o Esquema dos Conceitos-chave tem por objetivo tornar significativa a sua aprendizagem, transformando o seu conhecimento sistematizado em conteúdo curricular, ou seja, estabelecendo uma relação entre aquilo que você acabou de conhecer com o que já fazia parte do seu conhecimento de mundo (adaptado do site disponível em: <http://penta2.ufrgs. br/edutools/mapasconceituais/utilizamapasconceituais.html>. Acesso em: 11 mar. 2010). 23© Caderno de Referência de Conteúdo Organização de Computadores Processador e Memória Comandos de Entrada e Saída Compiladores e Interpretadores Programação de Computadores Estrutura Sequencial Estrutura de Controle Estrutura de Dados Tipos de Dados int, char, float, etc. Constantes e Variáveis printf e scanf Expressões Matemáticas e Lógicas if e switch for, while e do..while vetores e matrizes registros (struct) Modularização ponteiros Arquivos Figura 1 Esquema dos Conceitos-chave da disciplina Computação. Como pode observar, esse Esquema oferece a você, como dissemos anteriormente, uma visão geral dos conceitos mais importantes deste estudo. Ao segui-lo, será possível transitar en- tre os principais conceitos desta disciplina e descobrir o caminho para construir o seu processo de ensino-aprendizagem, como, por exemplo, o conceito de estrutura de controle, o qual implica o conhecimento das estruturas condicionais if e switch, além das estruturas de repetição for, while e do..while. © Computação Claretiano - REDE DE EDUCAÇÃO 24 O Esquema dos Conceitos-chave é mais um dos recursos de aprendizagem que vem se somar àqueles disponíveis no ambiente virtual, por meio de suas ferramentas interativas, bem como àqueles relacionados às atividades didático-pedagógicas realizadas presencialmente no polo. Lembre-se de que você, aluno EaD, deve valer-se da sua autonomia na construção de seu próprio conhecimento. Questões Autoavaliativas No final de cada unidade, você encontrará algumas questões autoavaliativas sobre os con- teúdos ali tratados, as quais podem ser de múltipla escolha ou abertas com respostas objetivas ou dissertativas. Responder, discutir e comentar essas questões, bem como relacioná-las com a prática do ensino de algoritmos e programação pode ser uma forma de você avaliar o seu conhecimento. Assim, mediante a resolução de questões pertinentes ao assunto tratado, você estará se prepa- rando para a avaliação final, que será dissertativa. Além disso, essa é uma maneira privilegiada de você testar seus conhecimentos e adquirir uma formação sólida para a sua prática profissio- nal. Bibliografia Básica É fundamental que você use a Bibliografia Básica em seus estudos, mas não se prenda só a ela. Consulte, também, as bibliografias apresentadas no Plano de Ensino e no item Orientações para o estudo da unidade. Figuras (ilustrações, quadros...) Neste material instrucional, as ilustrações fazem parte integrante dos conteúdos, ou seja, elas não são meramente ilustrativas, pois esquematizam e resumem conteúdos explicitados no texto. Não deixe de observar a relação dessas figuras com os conteúdos da disciplina, pois rela- cionar aquilo que está no campo visual com o conceitual faz parte de uma boa formação inte- lectual. Dicas (motivacionais) O estudo desta disciplina convida você a olhar, de forma mais apurada, a Educação como processo de emancipação do ser humano. É importante que você se atente às explicações teó- ricas, práticas e científicas que estão presentes nos meios de comunicação, bem como partilhe suas descobertas com seus colegas, pois, ao compartilhar com outras pessoas aquilo que você observa, permite-se descobrir algo que ainda não se conhece, aprendendo a ver e a notar o que não havia sido percebido antes. Observar é, portanto, uma capacidade que nos impele à maturidade. Você, como aluno dos cursos de Graduação na modalidade EaD, necessita de uma forma- ção conceitual sólida e consistente. Para isso, você contará com a ajuda do tutor a distância, do tutor presencial e, sobretudo, da interação com seus colegas. Sugerimos, pois, que organize bem o seu tempo e realize as atividades nas datas estipuladas. É importante, ainda, que você anote as suas reflexões em seu caderno ou no Bloco de Anotações, pois, no futuro, elas poderão ser utilizadas na elaboração de sua monografia ou de produções científicas. 25© Caderno de Referência de Conteúdo Leia os livros da bibliografia indicada, para que você amplie seus horizontes teóricos. Co- teje-os com o material didático, discuta a unidade com seus colegas e com o tutor e assista às videoaulas. No final de cada unidade, você encontrará algumas questões autoavaliativas, que são im- portantes para a sua análise sobre os conteúdos desenvolvidos e para saber se estes foram significativos para sua formação. Indague, reflita, conteste e construa resenhas, pois esses pro- cedimentos serão importantes para o seu amadurecimento intelectual. Lembre-se de que o segredo do sucesso em um curso na modalidade a distância é parti- cipar, ou seja, interagir, procurando sempre cooperar e colaborar com seus colegas e tutores. Caso precise de auxílio sobre algum assunto relacionado a esta disciplina, entre em conta- to com seu tutor. Ele estará pronto para ajudar você. 3. REFERÊNCIA BIBLIOGRÁFICA ASCENCIO, A. F. G. Lógica de programação com Pascal. São Paulo: Makron Books, 1999. Claretiano - REDE DE EDUCAÇÃO 1 EA D Introdução à Programação de Computadores 1. OBJETIVOS • Compreender os conceitos de organização de computadores. • Reconhecer e interpretar as principais linguagens de programação. • Instalar e configurar o ambiente para desenvolvimento. 2. CONTEÚDOS • Organização de computadores. • Sistemas operacionais. • Linguagens de programação. • Ambientes de desenvolvimento integrados. 3. ORIENTAÇÕES PARA O ESTUDO DA UNIDADE Antes de iniciar o estudo desta unidade, é importante que você leia as orientações a se- guir: 1) O início do estudo desta disciplina envolve alguns aspectos teóricos que serão funda- mentais ao longo de todo o aprendizado. Dessa forma, utilize um bloco de anotações para destacar os principais conceitos, tais como: compilador, interpretador, código- -fonte etc. 2) Para saber mais sobre algumas linguagens de programação e ambientes para progra- mação, acesse os sites indicados no decorrer desta unidade. Claretiano - REDE DE EDUCAÇÃO © Computação28 3) Tenha sempre à mão o significado dos conceitos explicitados no Glossário e suas li- gações pelo Esquema de Conceitos-chave para o estudo de todas as unidades deste Caderno de Referência de Conteúdo. Isso poderá facilitar sua aprendizagem e seu de- sempenho. 4) Leia os livros da bibliografia indicada para que você amplie seus horizontes teóricos. Coteje-os com o material didático e discuta a unidade com seus colegas e com o tutor. 4. INTRODUÇÃO À UNIDADE Nesta primeira unidade, você terá a oportunidade de estudar como os computadores são organizados e quais são seus principais componentes físicos e lógicos. Tais conceitos são essen- ciais para a construção de programas de computadores. Além disso, ao longo destaunidade você poderá aprender quais são os principais elemen- tos que compõem a arquitetura de um computador, desde o processador até o sistema opera- cional. Você conhecerá, ainda, quais passos são necessários para construir um programa e os principais conceitos envolvidos nesse contexto, tais como: compiladores, linguagens de progra- mação e ambientes de desenvolvimento. 5. ORGANIZAÇÃO DE COMPUTADORES O principal objetivo de um computador é realizar o processamento de grandes volumes de dados. Considerando essa capacidade, eles executam milhares de operações a velocidades incríveis. Essas operações são organizadas por meio de um conjunto de instruções que são cha- madas de programas de computador. Segundo Tanenbaum (2003), um programa determina quais ações são necessárias para um computador realizar o processamento dos dados. Para que isso ocorra, os programas con- tam com diversos tipos de instruções para manipulação de dados. Essas instruções são executa- das por meio de um componente de hardware denominado processador. O processador, por sua vez, é considerado o cérebro do computador; ele possui um con- junto específico de instruções que pode executar, e sua principal funcionalidade é a transfor- mação de dados, os quais ficam armazenados em um componente conhecido como memória principal. A memória principal, ou memória RAM, é um local em que o processador busca as informações e as instruções que devem ser executadas. Essa memória pode guardar qualquer tipo de dados. No entanto, esses dados ficam disponíveis apenas enquanto o computador esti- ver ligado. Alternativamente, esses dados podem ser armazenados de maneira permanente por meio da memória secundária, como, por exemplo, em discos rígidos. Geralmente, o carregamento dos dados na memória do computador é realizado por meio de elementos conhecidos como dispositivos de entrada. Como exemplos desses dispositivos de entrada, temos: teclado, mouse, digitalizadores (scanner), dentre outros. Em contrapartida, a disponibilização das informações é realizada por meio de componentes conhecidos como dis- positivos de saída, tais como: monitores, impressoras etc. A Figura 1 representa graficamente um computador e seus respectivos componentes. 29© Introdução à Programação de Computadores dispositivos de saída dispositivos de entrada memória secundária memória principal Figura 1 Representação dos principais componentes de um computador. Sistemas operacionais Um sistema operacional é um programa de computador que possui características espe- ciais, responsável por gerenciar os recursos computacionais, além de fornecer uma interface entre os programas do usuário e o hardware do computador (Tanenbaum, 2003). Todo usuário de computador utiliza algum tipo de sistema operacional, mesmo sem saber, pois ele é o primeiro programa executado quando o computador é ligado. Os primeiros siste- mas operacionais eram complexos e poucos usuários eram capazes de manipulá-los. Entretanto, hoje em dia, eles se tornaram mais simples e intuitivos, de forma que qualquer tipo de usuário, desde uma criança até um adulto, pode operá-lo facilmente. Existem diversos tipos de sistemas operacionais, cujas principais diferenças estão relacio- nadas aos recursos que cada um disponibiliza aos usuários. Em geral, esses sistemas podem ser divididos em dois grupos: • sistemas operacionais para uso doméstico; • sistemas operacionais para uso comercial (servidores). Veremos, a seguir, quais são os sistemas operacionais para uso doméstico e para uso co- mercial. Os sistemas operacionais para uso doméstico têm como principal característica a facilida- de de uso. Eles são adequados para usuários que não possuem grandes habilidades com com- putadores. Nessa família de sistemas operacionais, podemos destacar: • Microsoft Windows (Figura 2). • Linux (Figura 3). • Mac OS (Figura 4). Nas Figuras 2, 3 e 4, você pode observar as imagens que representam cada um desses sistemas operacionais. Claretiano - REDE DE EDUCAÇÃO © Computação30 Microsoft Windows Figura 2 Sistema Operacional Microsoft Windows Vista. A família de sistemas operacionais Microsoft Windows possui uma gama de programas para auxiliar os usuários menos experimentes a utilizar o computador. Os principais sistemas dessa família são: Windows 98, Windows XP e Windows Vista. Linux Figura 3 Sistema Operacional Linux, distribuição Suse. 31© Introdução à Programação de Computadores Ultimamente, os sistemas operacionais Linux vêm ganhando mercado, especialmente pelo fato de serem gratuitos. Há centenas de distribuições desse sistema operacional. Dentre as principais, podemos citar: Suse, Red Hat, Ubuntu e Debian. Mac OS Figura 4 Sistema Operacional Mac OS. O sistema operacional Mac OS é distribuído pela Apple e é muito utilizado por usuários que precisam trabalhar com recursos gráficos, como, por exemplo, processamento de imagens e editoração de vídeo. A versão mais recente desse sistema operacional é a Mac OS X. O Quadro 1 apresenta os principais sistemas operacionais disponíveis no mercado e seus respectivos endereços na internet. Esses endereços são ricas fontes de informações a respeito de cada sistema operacional e foram acessados em 12 de mar. 2012. Quadro 1 Principais sistemas operacionais para uso doméstico. SISTEMAS OPERACIONAIS PARA USO DOMÉSTICO SISTEMA OPERACIONAL ENDEREÇO Microsoft – Windows (todos) <http://www.microsoft.com/brasil/windows/> Microsoft – Windows Vista <http://www.microsoft.com/brasil/windows/windows-vista/> Linux – Suse <http://www.suse.com/> Linux – Red Hat <http://www.redhat.com/> Linux – Ubuntu <http://www.ubuntu-br.org/> Linux – Debian <http://www.debian.org/> Apple – Mac OS X <http://www.apple.com/br/macosx/> Agora, veremos os sistemas operacionais para uso comercial. Esses sistemas possuem as mesmas características de um sistema operacional para uso doméstico. No entanto, eles estão preparados para gerenciar recursos computacionais de grande porte. Os sistemas operacionais para uso comercial são geralmente conhecidos como sistemas operacionais para servidores. Claretiano - REDE DE EDUCAÇÃO © Computação32 Existem alguns sistemas operacionais que possuem versões para usuários domésticos e também para servidores, como é o caso do Windows e do Linux. Entretanto, alguns sistemas operacionais são exclusivos para servidores, como, por exemplo, o Unix e o Solaris. A Figura 5 apresenta uma tela do sistema operacional Solaris. O sistema operacional Solaris é desenvolvido pela Sun Microsystems e é da família Unix. Inicialmente, era um sistema operacional proprietário, mas atualmente possui uma versão gra- tuita denominada OpenSolaris. Figura 5 Sistema operacional Solaris. O Quadro 2 apresenta os principais sistemas operacionais para servidores e seus respecti- vos endereços na internet. Os endereços foram acessados em 26 mar. 2012. Quadro 2 Principais sistemas operacionais para servidores. SISTEMAS OPERACIONAIS PARA SERVIDORES SISTEMA OPERACIONAL ENDEREÇO Microsoft Windows Server <http://www.microsoft.com> Linux Suse Enterprise <http://www.suse.com> Linux Red Hat Enterprise <http://www.redhat.com/> Unix <http://www.unix.org> Solaris <http://www.sun.com/software/solaris/> 33© Introdução à Programação de Computadores 6. LINGUAGENS DE PROGRAMAÇÃO Como vimos no início desta unidade, os computadores são capazes de executar ações que são especificadas por meio dos programas. Dessa forma, para que um computador realize tarefas, é necessário que os programas sejam escritos em uma linguagem que ele entenda. Essa linguagem é conhecida como linguagem de programação. Uma linguagem de programação permite que o computador seja programado para execu- tar um conjunto determinado de ações. Com a linguagem de programação,podemos construir programas para os mais variados propósitos, tais como: controlar o estoque de uma empresa, analisar operações financeiras de um banco, calcular a média entre duas notas de alunos, dentre tantas outras. Na prática, o computador entende uma única linguagem de programação, que é conhe- cida como linguagem de máquina. No entanto, essa linguagem é pouco intuitiva para os seres humanos, tornando quase impossível o desenvolvimento de programas. Segundo Deitel (2005), cada computador possui uma linguagem de máquina específica, que é definida pelo seu projeto de hardware. Dessa forma, a programação de computadores por meio da linguagem de máquina é realizada utilizando instruções numéricas, que são representa- das por sequências binárias de zeros (0s) e uns (1s). Alternativamente, essas sequências podem ser representadas em sistemas de numeração hexadecimal. Observe, a seguir, uma instrução típica em linguagem de máquina: 0100 1111 1010 0110 A instrução anterior poderia representar, por exemplo, a leitura de uma informação do teclado, ou ainda a soma entre dois números. Esse tipo de programação baseada em linguagem de máquina é complexo e tedioso, além de ser pouco produtivo. Além disso, um programa escrito em linguagem de máquina não pode ser visualizado em editores de texto comuns, como, por exemplo, o bloco de notas. Para visualizar os códigos de máquina de um programa, você deve utilizar programas específicos, chamados de programas editores binários. O utilitário debug, disponível nas versões do Windows, é um deles. Por exemplo, para visualizar os códigos de máquina do programa Paint, clique no menu Iniciar, em seguida em Executar, digite o comando a seguir e veja a representação na Figura 6. debug c:\windows\system32\mspaint.exe Figura 6 Execução do programa Debug. Claretiano - REDE DE EDUCAÇÃO © Computação34 Em seguida, digite o comando: d 0 100 O resultado da execução do programa Debug é o demonstrado na captura de tela a seguir. códigos de máquina em hexadecimal. Em seguida, pressione a tecla q (quit), e depois enter, para sair do programa. Veja como é "simples" escrever um programa em linguagem de máquina! Para facilitar o desenvolvimento de programas, foi criado um conjunto de instruções, as quais representam as operações básicas que um computador pode realizar. Assim, em vez de utilizar uma sequência numérica de difícil compreensão, o programador pode utilizar um con- junto de nomes, conhecidos como mnemônicos. Essa linguagem baseada em abreviações e símbolos é chamada de linguagem de montagem. Um programa escrito em linguagem de montagem pode ser traduzido para linguagem de máquina por meio de programas chamados de montadores ou assembler. Para ilustrar a criação de programas utilizando a linguagem de montagem, observe o código a seguir, o qual apresenta a soma de dois números. O programa soma os valores 100 e 200 e armazena-os em resultado (adaptado de DEITEL, 2005). 1 load 100 2 add 200 3 store resultado Certamente, o código em linguagem montadora é muito mais simples do que os códigos escritos em linguagem de máquina. No entanto, apesar da evolução entre as linguagens, um número grande de instruções era necessário para executar as mais simples tarefas. Para tornar mais simples a escrita de programas e acelerar o processo de desenvolvimen- to, foram criadas as linguagens de alto nível. Com essas linguagens, foi possível agrupar conjun- tos de instruções da linguagem de máquina em uma única instrução. 35© Introdução à Programação de Computadores Por exemplo, suponha que você precise escrever uma determinada mensagem no mo- nitor. Em linguagem de montagem, você precisaria escrever um conjunto substancial de linhas para executar essa tarefa. Entretanto, em uma linguagem de alto nível, como, por exemplo, a linguagem de programação C, você tem uma única instrução que realiza essa tarefa (printf). Veja o código a seguir, que ilustra como é possível escrever uma mensagem na tela utilizando a linguagem C. 1 printf(“Olá seja bem-vindo!”); Os programas de computador escritos em linguagem de alto-nível são comumente cha- mados de código-fonte do programa, ou simplesmente código-fonte. O código-fonte de um programa é semelhante a um algoritmo. No entanto, enquanto o algoritmo é escrito em pseu- docódigo, o código-fonte é escrito utilizando as instruções da linguagem de programação esco- lhida. Para que o código-fonte de um programa possa ser executado, é preciso que ele seja trans- formado em linguagem de máquina. Esse processo é realizado por um programa específico cha- mado de compilador, que transforma o código-fonte em código-objeto. Na maioria das vezes, esse código compilado é um arquivo executável que pode ser reproduzido pelo sistema opera- cional. O código-objeto possui todas as instruções necessárias para o processador executar o programa. É importante observar que o processo de compilação de um código-fonte o torna executável apenas no sistema operacional em que ele foi compilado e, também, apenas para uma família de processadores específicos. Isso significa que um programa compilado no sistema operacional Windows XP, por exemplo, funcionará apenas nos sistemas operacionais da família Windows, enquanto um programa compilado no sistema operacional Linux SUSE, funcionará apenas nos sistemas operacionais baseados em Linux. Veja a Figura 7, que ilustra o processo de compilação de um código-fonte. código fonte código objeto entrada saída Figura 7 Processo de compilação de um código-fonte. Na linguagem de programação C, por exemplo, o código-fonte de um programa possui a extensão .C (meuprograma.c) e o código-objeto possui a extensão .obj (meuprograma.obj). Um programa chamado de “linkador” transforma o arquivo objeto em executável (meuprograma. exe). A Figura 8 ilustra o processo de compilação na linguagem de programação C. Claretiano - REDE DE EDUCAÇÃO © Computação36 Figura 8 Processo de compilação de um código-fonte na linguagem de programação C. A seguir, apresentamos uma listagem com algumas linguagens de programação que reali- zam a compilação do código-fonte: 1) C; 2) C++; 3) Cobol; 4) Delphi (Object-Pascal); 5) Fortran; 6) Pascal; 7) Visual Basic. Algumas linguagens de programação não executam o processo de compilação em seus có- digos-fontes. Essas linguagens realizam um procedimento conhecido como interpretação. Para isso, elas utilizam um programa chamado interpretador. Durante a interpretação, o código-fon- te é analisado (ou traduzido) linha por linha e é diretamente executado. Assim, a cada execução do programa, o código-fonte precisa ser novamente interpretado, para que o resultado seja reproduzido corretamente. A Figura 9 ilustra o processo de interpretação de um código-fonte. Figura 9 Processo de interpretação de um código-fonte. 37© Introdução à Programação de Computadores Veja, agora, algumas linguagens de programação que são interpretadas: 1) Basic; 1) Perl; 2) PHP; 3) Python; 4) Lisp. É importante salientar que algumas linguagens de programação executam os dois pro- cessos, o de compilação e o de interpretação, para execução dos programas. Em um primeiro momento, o código-fonte é compilado e, em seguida, é interpretado. Essa é uma característica importante, pois torna os programas multiplataforma, ou seja, os programas podem ser exe- cutados em vários sistemas operacionais sem a necessidade de recompilação. Para a execução dos programas, essas linguagens utilizam um recurso conhecido como máquina virtual. Um exemplo de linguagem compilada e interpretada é a linguagem Java, que pode ser encontrada no site <http://java.sun.com>. 7. AMBIENTES DE DESENVOLVIMENTO Os ambientes de desenvolvimento integrados, do inglês Integrated Development Environment (IDE), fornecem aos programadorestodos os recursos necessários para escrever e testar os pro- gramas de computador. Nesta disciplina, aprenderemos a construir programas na linguagem de programação C. Precisaremos, então, utilizar um ambiente de desenvolvimento integrado que suporte essa lin- guagem. Há dezenas de ambientes para programação para a linguagem C. Os principais são: • Netbeans (disponível em: <http://www.netbeans.org/>. Acesso em: 12 mar. 2012). O NetBeans é um ambiente de desenvolvimento que suporta diversas linguagens; é muito utilizado para programação na linguagem Java, mas também oferece recursos para desenvolvimento de programas na linguagem C. É um ambiente de desenvolvi- mento gratuito e de código-fonte aberto, distribuído pela empresa Sun Microsystems (disponível em: <http://www.sun.com/>. Acesso em: 12 mar. 2012). Além disso, é um ambiente multiplataforma, o que significa que funciona em qualquer sistema opera- cional, como, por exemplo, Windows e Linux. • Code::Blocks (disponível em: <http://www.codeblocks.org/>. Acesso em: 12 mar. 2012). O Code::Blocks, ou simplesmente C::B, é um ambiente de desenvolvimento integrado para as linguagens C e C++. É um ambiente multiplataforma, gratuito e de código- -fonte aberto, possuindo versões para Windows e Linux. • Microsoft Visual C++ Express Edition (disponível em: <http://www.microsoft.com/ Express/vc/>. Acesso em: 12 mar. 2012). O Visual C++ Express Edition é o ambiente para desenvolvimento da Microsoft para construções de programas na linguagem C e C++. A expressão "Express Edition” refe- re-se a um conjunto de ambientes para desenvolvimento que a Microsoft disponibiliza de forma gratuita. Outros ambientes de desenvolvimento, não menos importantes, são: Claretiano - REDE DE EDUCAÇÃO © Computação38 • Dev-C++ (disponível em: <http://www.bloodshed.net/devcpp.html>. Acesso em: 12 mar. 2012). • Eclipse for C/C++ Developers (disponível em: <http://www.eclipse.org/>. Acesso em: 12 mar. 2012). • Borland C++ (disponível em: <http://www.codegear.com/downloads/free/cppbuilder>. Acesso em: 12 mar. 2012). Nesta disciplina, você poderá utilizar o ambiente de desenvolvimento de sua preferência. Para facilitar a instalação e configuração do ambiente, são apresentados os procedimentos para dois ambientes: NetBeans e Code::Blocks. O ambiente NetBeans oferece suporte completo ao desenvolvimento de aplicações em diversas linguagens. Sua instalação é um pouco complexa, mas funciona perfeitamente em di- versos sistemas operacionais. Já o ambiente Code::Blocks possui um processo de instalação simplificado, sendo indicado para o desenvolvimento dos exemplos e exercícios ao longo desta disciplina. Instalação e configuração do ambiente Netbeans Agora, você terá a oportunidade de aprender a instalar e a configurar o ambiente Netbe- ans. Para isso, fique atento às explicações e siga os passos corretamente. Inicialmente, você deverá fazer alguns downloads. Veja, a seguir, os endereços em que estão disponíveis. Todos os sites foram acessados em 12 de março de 2012. • Java SE Development Kit <http://java.sun.com/javase/downloads/> • NetBeans <http://www.netbeans.org/downloads/index.html> • Compilador da linguagem C MinGW: <http://prdownloads.sourceforge.net/mingw/MinGW-3.1.0-1.exe?download> MSYS: <http://downloads.sourceforge.net/mingw/ MSYS-1.0.10.exe> Em seguida, vamos iniciar a instalação do Java SE Development Kit. Para tanto, siga os passos a seguir. 1) Acesse o endereço <http://java.sun.com/javase/downloads/> e selecione “Java SE Development Kit” (Figura 10). 39© Introdução à Programação de Computadores Figura 10 Site para download do Java SDK. 2) Selecione o sistema operacional, Windows ou Linux, e, em seguida, clique no item “I agree to the...”; finalmente, clique no botão Continue (Figura 11). Figura 11 Seção da Plataforma do Java SDK. Claretiano - REDE DE EDUCAÇÃO © Computação40 3) Clique no link para download do programa. Quando a janela de download aparecer, selecione a opção para salvar o arquivo no disco (Figura 12). Figura 12 Download do Java SDK. 4) Depois de terminado o download, clique duas vezes em cima do arquivo de instalação. Você não precisa alterar nenhum tipo de configuração na instalação do JDK; assim, você pode clicar seguidas vezes no botão Próximo (next), até a instalação começar. Ao final, você visualizará a tela exibida na Figura 13. Figura 13 Instalação do Java SDK. Instalação do NetBeans 1) Acesse o endereço <http://www.netbeans.org/downloads/index.html> e selecione a opção de download do NetBeans para C/C++ (Figura 14). 41© Introdução à Programação de Computadores Figura 14 Download do ambiente NetBeans. 2) Depois de terminado o download, clique duas vezes no arquivo de instalação. A ins- talação é bastante simples e não necessita de configurações adicionais. Dessa forma, clique para aceitar os termos de licença e, em seguida, clique no botão Próximo até visualizar a tela de instalação da Figura 15. Figura 15 Instalação do programa NetBeans. 3) O ambiente de desenvolvimento NetBeans foi perfeitamente instalado. Claretiano - REDE DE EDUCAÇÃO © Computação42 Instalação do compilador para linguagem C 1) Faça o download dos programas necessários e salve os arquivos em uma pasta. • MinGW (disponível em: <http://prdownloads.sourceforge.net/mingw/Min- GW-3.1.0-1.exe?download>. Acesso em: 13 mar. 2012). Faça o download do arqui- vo. • MSYS (disponível em: <http://downloads.sourceforge.net/mingw/MSYS-1.0.10. exe>. Acesso em: 13 mar. 2012). 2) Depois de terminado o download, clique duas vezes no arquivo MinGW-3.1.0-1.exe. A instalação do programa é muito simples: basta aceitar os termos e clicar no botão Next para instalar. Ao final, você visualizará a tela apresentada na Figura 16. Figura 16 Tela de instalação do programa MinGW. 3) O próximo passo é a instalação do programa MSYS-1.0.10.exe. A instalação também é bastante simples. Em determinando momento, será necessário preencher algumas informações. Na primeira pergunta, digite y, conforme ilustrado na Figura 17. Figura 17 Instalação do programa MSYS. 43© Introdução à Programação de Computadores 4) Digite novamente y para a próxima pergunta, conforme apresentado na Figura 18. Figura 18 Instalação do programa MSYS. 5) Finalmente, devemos especificar o diretório de instalação do MinGW. Para isso, digite o diretório da seguinte forma: c:/MinGW (conforme ilustrado na Figura 19). Figura 19 Instalação do programa MSYS. 6) Com isso, o compilador está devidamente instalado. Configuração do Compilador C no NetBeans 1) No NetBeans, clique no menu Ferramentas, Opções. Em seguida, no menu, selecione C/C++, e, finalmente, clique no botão Adicionar. Na janela aberta (Figura 20), selecio- ne o local de instalação dos arquivos binários do MinGW, que são instalados por pa- drão em c:\MinGW\bin. Clique, então, no botão OK. O resultado pode ser visualizado na Figura 21a. Claretiano - REDE DE EDUCAÇÃO © Computação44 Figura 20 Configuração do compilador C no ambiente NetBeans. Figura 21a Configuração do compilador C no ambiente NetBeans. 2) Caso seja necessário, você pode configurar o Comando Make, informando o diretório de instalação (Figura 21b). 45© Introdução à Programação de Computadores Figura 21b Diretório de instalação do programa Make. 3) Finalmente, o ambiente está devidamente configurado. Criação e compilação de um programa na linguagem C 1) Com o NetBeans aberto, clique no menu Arquivo, Novo Projeto...; você visualizará a tela apresentada na Figura 22. Figura 22 Criando um novo projeto C. 2) Na janela Novo Projeto, selecione a categoria C/C++, e, em projetos (lado direito) se- lecione Aplicativo de C/C++. Clique no botão Próximo. Especifique o nome do projeto. Por exemplo,MeuPrimeiroProjeto, e clique no botão Finalizar. 3) Com o novo projeto criado, clique com o botão direito do mouse em Arquivos de código-fonte. Selecione a opção Novo, e, em seguida, clique em Arquivo C Principal (Figura 23). Claretiano - REDE DE EDUCAÇÃO © Computação46 Figura 23 Criando um Novo Arquivo C Principal. 4) Na janela Novo Arquivo C Principal, defina o “Nome do Arquivo”. Por exemplo: MeuPrimeiroPrograma. Clique no botão Finalizar. Seu ambiente de desenvolvimento será semelhante ao da Figura 24. Figura 24 Primeiro programa no ambiente de desenvolvimento NetBeans. 5) No código-fonte do programa MeuPrimeiroPrograma.C, faça as alterações necessárias para que o código seja semelhante ao programa a seguir: 47© Introdução à Programação de Computadores 6) Finalmente, vamos executar o programa implementado. Para isso, clique no menu Executar, Executar Main Project... ou simplesmente pressione a tela F6. O resultado é apresentado na captura de tela a seguir: 7) Com isso, seu ambiente está pronto para escrever novos programas! Instalação e configuração do ambiente Code::Blocks Agora, você poderá aprender a instalar e a configurar o ambiente Code::Blocks. Para isso, é importante ficar atento às explicações e seguir os passos corretamente. Inicialmente, é necessário fazer o download do Code::Blocks com Compilador MinGW, no endereço <http://downloads.sourceforge.net/codeblocks/codeblocks-8.02mingw-setup.exe>. Acesso em: 13 mar. 2012. Em seguida, vamos iniciar a instalação do Code::Blocks passo a passo. 1) Acesse o endereço <http://www.codeblocks.org/downloads/5> para fazer o download do Code::Blocks e selecione a versão desejada. Alternativamente, você pode acessar diretamente o link para download <http://downloads.sourceforge.net/codeblocks/co- deblocks-8.02mingw-setup.exe> Claretiano - REDE DE EDUCAÇÃO © Computação48 2) Depois de terminado o download, clique duas vezes no arquivo de instalação do Code::Blocks. Assim, a tela inicial de instalação será apresentada. Em seguida, clique no botão Next (Figura 25). Figura 25 Instalação do programa Code::Blocks. 3) Aceite os termos de licença clicando no botão I Agree e, em seguida, clique no botão Next. Finalmente, aparecerá o botão Install. Clique nesse botão para iniciar a instala- ção do programa (Figura 26). Figura 26 Instalação do programa Code::Blocks. 49© Introdução à Programação de Computadores 4) Terminada a instalação, você pode executar o ambiente. Na primeira vez que o am- biente for executado, selecione qual compilador C será utilizado na geração dos pro- gramas. Selecione o GNU GCC Compiler e, em seguida, clique em OK (Figura 27). Figura 27 Seleção do compilador para o programa Code::Blocks. 5) A tela inicial do Code::Blocks deverá ser semelhante à da Figura 28. Figura 28 Ambiente de desenvolvimento Code::Blocks. 6) Dessa forma, seu ambiente de desenvolvimento está pronto para você escrever pro- gramas na linguagem C. Claretiano - REDE DE EDUCAÇÃO © Computação50 Criação e compilação de um programa na linguagem C 1) Com o programa Code::Blocks aberto, clique no menu File, New Project... 2) Selecione o projeto Console application e, em seguida, clique no botão Go, conforme demonstra a Figura 29. Figura 29 Criando novos projetos Console Application. 3) Na primeira vez que um novo projeto é criado, você visualizará a tela mostrada na Figura 30. Selecione a opção "Skip this page next time” e clique em Next. Figura 30 Criando novos projetos Console Application. 51© Introdução à Programação de Computadores 4) Selecione projetos do tipo C e, em seguida, clique em Next (Figura 31). Figura 31 Criando novos projetos Console Application. 5) Na Figura 32, estão ilustrados a definição, o título do projeto (Project Title) e a pasta na qual o projeto será criado (Folder to create project in). Finalmente, clique em Next. Figura 32 Criando novos projetos Console Application. 6) Verifique se o compilador selecionado é o GNU GCC Compiler (Figura 33). Claretiano - REDE DE EDUCAÇÃO © Computação52 Figura 33 Criando novos projetos Console Application. 7) Pronto! Seu primeiro projeto na linguagem C está criado. O arquivo que contém o código-fonte do programa pode ser visualizado na guia Projects, do lado esquerdo (Figura 34). Figura 34 Estrutura de um projeto Console Application. 53© Introdução à Programação de Computadores 8) Para executar a aplicação, você pode, alternativamente, utilizar o ícone na barra de menus, conforme demonstra a seta na Figura 35, ou selecionar o menu Build, Build and Run ou, ainda, pressionar a tecla F9. Figura 35 Execução de programas no Code::Blocks. 9) O resultado da aplicação é apresentado na captura de tela a seguir. 8. QUESTÕES AUTOAVALIATIVAS Sugerimos que você procure responder, discutir e comentar as questões a seguir que tratam da temática desenvolvida nesta unidade. A autoavaliação pode ser uma ferramenta importante para você testar o seu desempenho. Se você encontrar dificuldades em responder a essas questões, procure revisar os conteúdos estudados para sanar as suas dúvidas. Esse é o momento ideal para que você faça uma revisão desta unidade. Lembre-se de que, na Educação a Distância, a construção do conhecimento ocorre de forma cooperativa e colaborativa; compartilhe, portanto, as suas descobertas com os seus colegas. Confira, a seguir, as questões propostas para verificar o seu desempenho no estudo desta unidade: 1) O que é um programa de computador? 2) Qual é a função do processador e qual é sua relação com os programas de computador? Claretiano - REDE DE EDUCAÇÃO © Computação54 3) Reflita sobre a diferença entre memória principal e memória secundária. 4) Conceitue e apresente exemplos de dispositivos de entrada e dispositivos de saída. 5) O que são sistemas operacionais? 6) Os computadores são capazes de executar ações que são especificadas por meio dos programas. Dentro deste contexto, o que é linguagem de programação? 7) Relacione linguagem de máquina e linguagem de montagem. Pensando nas duas definições, investigue: o que são montadores ou assemblers? 8) Considerando a elaboração de um programa de computador, explique o que é o código-fonte do programa. 9) Qual é a utilidade de um compilador? 10) Reflita sobre a diferença entre o código-objeto e o código-fonte. 11) Compare o processo de compilação de um código-fonte e o processo de compilação de um código-fonte na linguagem de programação C. 12) Apresente pelo menos três exemplos de linguagens de programação compiladas. 13) O que é interpretador? Explique o processo de interpretação de um código-fonte. 14) Apresente pelo menos três exemplos de linguagens de programação interpretadas. 15) Explique o processo de criação e compilação de um programa na linguagem C utilizando o ambiente Code::Blocks. 9. CONSIDERAÇÕES Terminamos o estudo da primeira unidade! Nela, você teve a oportunidade de aprender os principais conceitos sobre organização de computadores, sistemas operacionais e linguagens de programação. Além disso, conheceu os procedimentos para a instalação e configuração do ambiente de desenvolvimento integrado para programação na linguagem C. Esse ambiente será fundamental para o estudo das próximas unidades, nas quais escreveremos diversos programas na linguagem C. 10. REFERÊNCIAS BIBLIOGRÁFICAS DEITEL, H. M. Java: como programar. 6. ed. São Paulo: Prentice-Hall, 2005. TANENBAUM, A. S. Sistemas operacionais modernos. 2. ed. São Paulo: Prentice-Hall, 2003.
Compartilhar