Conceitos Fundamentais de Programação
Tese: Conceitos Fundamentais de Programação. Pesquise 862.000+ trabalhos acadêmicosPor: • 24/5/2013 • Tese • 2.550 Palavras (11 Páginas) • 639 Visualizações
Objetivo do desafio
______________________________________________________________________
Elaborar um software para aprimorar o corte das bobinas, considerando que as larguras das bobinas podem variar, bem como a quantidade solicitada pelos clientes. Esta atividade requer relatórios que deverão ser entregues à medida que as etapas forem concluídas.
ETAPA 1
Aula-tema: Conceitos Fundamentais de Programação.
Esta atividade é importante para que você conheça os fundamentos de Programação, como Noções de Algoritmo, Pseudo Linguagem, Estrutura de um Programa, Representação de Dados e Variáveis e Operadores. Para realizá-la, devem ser seguidos os passos descritos.
PASSOS
Passo 2
______________________________________________________________________
Fazer a discussão do conteúdo do texto lido, e registrar as informações referentes ao conteúdo do texto lido e registrar em um relatório os programas e análises de qualidade e complexidade, com destaque para:
• Noção de Algoritmos.
• Pseudo Linguagem.
• Estrutura de um Programa.
• Tipos Primitivos para representação de Dados e Variáveis.
• Operadores Aritméticos, Lógicos e relacionais.
• Características do ambiente de desenvolvimento C.
-Noção de Algoritmos: Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita. O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita culinária, embora muitos algoritmos sejam mais complexos. Eles podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica) até que a tarefa seja completada. Um algoritmo corretamente executado não irá resolver um problema se estiver implementado incorretamente ou se não for apropriado ao problema. Um algoritmo não representa, necessariamente, um programa de computador[3], e sim os passos necessários para realizar uma tarefa. Sua implementação pode ser feita por um computador, por outro tipo de autômato ou mesmo por um ser humano. Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferenciado de instruções em mais ou menos tempo, espaço ou esforço do que outros. Tal diferença pode ser reflexo da complexidade computacional aplicada, que depende de estruturas de dados adequadas ao algoritmo. Por exemplo, um algoritmo para se vestir pode especificar que você vista primeiro as meias e os sapatos antes de vestir a calça enquanto outro algoritmo especifica que você deve primeiro vestir a calça e depois as meias e os sapatos. Fica claro que o primeiro algoritmo é mais difícil de executar que o segundo apesar de ambos levarem ao mesmo resultado. O conceito de um algoritmo foi formalizado em 1936 pela Máquina de Turing de Alan Turing e pelo cálculo lambda de Alonzo Church, que formaram as primeiras fundações da Ciência da computação.
-Pseudo Linguagem: Pseudocódigo é uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve, de forma a ser entendida por qualquer pessoa) sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação. É como o nome indica, um pseudocódigo e, portanto, não pode ser executado num sistema real (computador) — de outra forma deixaria de ser pseudo. Os livros sobre a ciência de computação utilizam frequentemente o pseudocódigo para ilustrar os seus exemplos, de forma que todos os programadores possam entendê-los (independentemente da linguagem que utilizem). No caso da língua portuguesa existam alguns interpretadores de pseudocódigo, nenhum tem a projeção das linguagens Pascal ou BASIC, que no caso da língua inglesa se assemelham bastante a um pseudo-código. Um programa para compilar um código em portugol é o VisuALG ou Portugol Viana.
-Estrutura de um Programa: Comandos para inclusão de ficheiros com declarações:
Definições de constantes, Declarações de variáveis, Declarações de funções, Definições de funções (sub-programas), Definição da função main (programa principal).
Uma função é constituída por declarações e instruções. A instrução return() indica o resultado da função e termina a execução desta.
Uma instrução contém expressões e termina com ;
Uma expressão contém constantes, variáveis, chamadas de funções, operadores, parêntesis.
A função main() não deve ser chamada no código do programa: é a função que é chamada quando o programa for executado.
-Tipos Primitivos para representação de Dados e Variáveis: Os primitivos são atômicos, não podem ser decompostos em tipos mais simples. Alguns relacionam-se diretamente a sua representação interna, no mesmo caso dos números inteiros. Outros tipos primitivos, como o tipo caractere, precisam de um pequeno suporte de hardware ou software para serem representados internamente. Tipos de dados: O computador é um dispositivo eletrônico que, em seu nível mais elementar, reconhece apenas dois estados elementares. todos os dados de um computador precisam ser representados com base em um sistema de numeração binário, onde apenas dois valores diferentes são distinguidos. esses dois estados são representados como 0 (zero) e 1 (um) e são chamados de dígitos binários.
- Operadores Aritméticos, Lógicos e relacionais: Operadores: Operadores são sinais utilizados nos algoritmos para indica a realização de operações que podem ser de três categorias:
• Aritméticas
• Relacionais
• Lógicas
Operadores Aritméticos: Servem para realizar operações com números inteiros ou reais. Todo operador em Pascal possui uma precedência própria, a de execução em uma expressão. Os operadores aritméticos que possuem a precedência mais alta são:
Multiplicação: *
Divisão Real: / (Resultado pode ser inteiro e real).
Divisão Inteira ( truncada ): div (Resultado sempre vai ser um inteiro).
Resto da Divisão: mod.
Operadores Relacionais: São operadores binários que devolvem os valores lógicos verdadeiro e falso.Estes valores são somente usados quando se deseja efetuar comparações.Comparações só podem ser feitas entre objetos de mesma natureza,isto é, variareis do mesmo tipo de dado.
> MAIOR >= MAIOR OU IGUAL
< MENOR <= MENOR OU IGUAL
= IGUAL <> DIFERENTE
Operadores lógicos ou booleanos: são usados para combinar expressões relacionais e resultam nos valroes lógicos verdadeiro ou falso.
Operador de atribuição: O operador de atribuição no Pascal é o símbolo “ := ” (dois pontos seguidos do sinal de igualdade). O operador de atribuição é empregado em uma declaração de atribuição para gravar um novo valor em uma variável.
-Características do ambiente de desenvolvimento C: IDE, do inglês Integrated Development Environment ou Ambiente Integrado de Desenvolvimento, é um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Geralmente os IDEs facilitam a técnica de RAD (de Rapid Application Development, ou "Desenvolvimento Rápido de Aplicativos"), que visa a maior produtividade dos desenvolvedores. As características e ferramentas mais comuns encontradas nos IDEs são: Editor - edita o código-fonte do programa escrito na(s) linguagem(ns) suportada(s) pela IDE;
Compilador (compiler) - compila o código-fonte do programa, editado em uma linguagem específica e a transforma em linguagem de máquina;
Linker - liga (linka) os vários "pedaços" de código-fonte, compilados em linguagem de máquina, em um programa executável que pode ser executado em um computador ou outro dispositivo computacional.
Depurador (debugger) - auxilia no processo de encontrar e corrigir defeitos no código-fonte do programa, na tentativa de aprimorar a qualidade de software;
Modelagem (modeling) - criação do modelo de classes, objetos, interfaces, associações e interações dos artefatos envolvidos no software com o objetivo de solucionar as necessidades-alvo do software final.
Geração de código - característica mais explorada em Ferramentas CASE, a geração de código também é encontrada em IDEs, contudo com um escopo mais direcionado a templates de código comumente utilizados para solucionar problemas rotineiros. Todavia, em conjunto com ferramentas de modelagem, a geração pode gerar todo ou praticamente todo o código-fonte do programa com base no modelo proposto, tornando muito mais rápido o processo de desenvolvimento e distribuição do software;
Distribuição (deploy) - auxilia no processo de criação do instalador do software, ou outra forma de distribuição, seja discos ou via internet.
Testes Automatizados (automated tests) - realiza testes no software de forma automatizada, com base em scripts ou programas de testes previamente especificados, gerando um relatório, assim auxiliando na análise do impacto das alterações no código-fonte. Ferramentas deste tipo mais comuns no mercado são chamadas robôs de testes.
Refatoração (refactoring) - consiste na melhoria constante do código-fonte do software, seja na construção de código mais otimizado, mais limpo e/ou com melhor entendimento pelos envolvidos no desenvolvimento do software. A refatoração, em conjunto com os testes automatizados, é uma poderosa ferramenta no processo de erradicação de "bugs", tendo em vista que os testes "garantem" o mesmo comportamento externo do software ou da característica sendo reconstruída.
Softwell Maker - Multi-linguagem e multi-banco, gerando aplicativos, documentação e funciona integrando BPM;
HB++ (Handheld-Basic) - Desenvolve projetos PalmOS Palm OS;
Boa Constructor - Gera código Python;
Delphi - Trabalha originalmente com a linguagem Object Pascal/Pascal, agregando na suite Delphi Studio 2005, a linguagem C# e a extensão da Object Pascal para .NET;
Lazarus - Uma alternativa gratuita e de código livre (open source) para o Delphi, que também trabalha originalmente com Pascal e Object Pascal, é baseado no compilador Free Pascal, sua interface é semelhante a do Delphi até sua versão 7 (antes do Delphi mudar para o estilo visual das ferramentas da Microsoft).
Eclipse - Gera código Java (através de plugins, o Eclipse suporta muitas outras linguagens como Python e C/C++);
Netbeans - Gera código Java e suporta muitas outras linguagens como Python e C/C++);.
Sun Studio - Linguagens C, C++ e Fortran
BlueJ - Gera código Java.
Genexus - Ferramenta baseada em conhecimento, gera em diversas linguagens de programação e bancos de dados.
Visual Basic - Gera código Basic;
Visual Studio .NET - Gera código para Framework .NET, suportando linguagens como Visual Basic .NET, C#, C++, J# e outras compatíveis com .NET.
SharpDevelop - Gera código C#.
MonoDevelop - Baseado no SharpDevelop, para ambiente Unix
DEV-C++, Code::Blocks, Turbo C - Geram código para C e C++
Anjuta - Gera código para C e C++
Anubis - Gera código PHP-GTK;
Zend Studio - Gera código PHP;
WOL - Gera código pascal (também é biblioteca)
Xcode - Gera código Objective-C
IAR Embedded Workbench - Gera códigos em C e Assembly para programação de microcontroladores.
Source Insight - Suporta: C, C++, VHDL, para Ambiente Windows - Source Dynamics;
Passo 3 ______________________________________________________________________
Realizar as seguintes atividades:
1. Desenvolver uma função matemática que resuma o cálculo do peso teórico de uma
Bobina Filha. Fórmula:
Peso = Largura x (Diâmetro externo / 1000) x Peso por metro linear:
i. Peso = 660 x (1000 / 1000) x 0,610;
ii. Peso = 660 x 1 x 0,610;
iii. Peso = 402,60 _ 403 Kg;
a) Bobinas com Diâmetro total externo de 1000 mm peso por metro linear 0,610: IV. Exemplo Largura de 660 peso igual a 403 Kg;
Então, 660x (1000/1000)x0,610 onde 660x1x0,610= 514,60 que foi arredondado para 515 Kg.
b) Bobinas com Diâmetro total externo de 1150 mm peso por metro linear 0,678: V. Exemplo largura de 660 peso igual a 515 Kg;
Então, 660x (1150/1000)x0,678 onde 660x1,15x0,678= 514,60 que foi arredondado para 515 Kg.
c) Bobinas com Diâmetro total externo de 1200 mm peso por metro linear 0,725: VI. Exemplo largura de 660 peso igual a 574 Kg;
Então, 660x (1200/1000)x0,725 onde 660x 12x0,725= 574,20 que foi arredondado para 574 Kg.
d) Bobinas com Diâmetro total externo de 1500 mm peso por metro linear 0,933: VII Exemplo largura de 660 peso igual a 924 Kg;
Então, 660x(1500/1000)x0,933 onde 660x15x0,933=923,67 que foi arredondado para 924 Kg.
2. Descrever as variáveis que armazenarão as informações que serão solicitadas para que o cálculo do peso teórico possa ser realizado.
int main(int argc, char *argv[])
{
printf("Peso Teorico");
int Largura,Diametro Externo,Peso Teorico;
float Peso por metro Linear;
printf("Digite a Largura");
scanf("%d",Largura);
printf("Digite o Diametro Externo);
scanf("%d",Diametro Externo);
printf("Digite o Peso por metro Linear");
scanf("%f",Peso por metro Linear);
system("PAUSE");
Peso Teorico= Largura*(Diametro Externo/1000)*Peso por metro Linear;
return 0;
}
Passo 4 ______________________________________________________________________
Introdução
A linguagem C foi desenvolvida por Dennis Ritchie em 1972 para ser utilizado com o sistema operacional UNIX. Desde então não parou de crescer, sendo até hoje usada por diversos programadores. O seu sucesso se deve a grande flexibilidade que ela oferece ao programador. Existem diversas vantagens em se utilizar C, vejamos algumas delas: possui um conjunto compacto de palavras-chaves e de tipos de dados evitando varias operações desnecessárias, uso de ponteiros que permite o acesso de baixo nível a memória, os parâmetros das funções não são passados através de referencia embora isto seja possível fazendo uso de ponteiros. A linguagem C é considerada de baixo nível ou de nível médio, o que significa obter um melhor controle do hardware podendo assim manipular bits, bytes e endereços. Devido ao grande numero de programadores que utilizam a linguagem C existe uma vasta gama de compiladores C/C++ e bibliotecas disponível no mercado. Sendo alguns deles gratuitos, por exemplo, o dev-c++ para Windows e o gcc para Linux. Para que todos esses compiladores de diferentes fabricantes possam ser compatíveis entre si existe o padrão C que foi estabelecido pelo comitê criado em 1983 pela ANSI (American National Standards Institute).
Definição de Compiladores
Os compiladores são programas sofisticados que traduz o código fonte para uma linguagem que o computador possa entender (linguagem de maquina). O compilador lê as instruções uma por vez, verificando sua sintaxe e convertendo a instrução para a linguagem de maquina, porém não a executa ainda. Este processo é repetido até que a ultima instrução seja lida e convertida para linguagem de maquina. Caso não haja erro o compilador gera um programa em disco com o sufixo .OBJ contendo as instruções traduzidas. Este programa só será executado quando todas as rotinas necessárias para execução estiverem agregadas. Este processo é feito pelo “linkeditor” que, além disso, cria um programa com o sufixo .EXE que pode ser executado diretamente pelo sistema operacional.
Palavras Chaves
A tabela a seguir apresenta as 32 palavras-chaves existentes em C e definidas como padrão ANSI. Alguns compiladores podem fazer uso de outras palavras-chaves (palavras reservadas) que não estão presentes na lista abaixo. As palavras-chaves são escritas sempre em letras minúsculas.
Palavras chaves em C (padrão ANSI)
auto Double int Struct
break Else long Switch
case Enum register typedef
char Extern return union
const Float short unsigned
continue For signed void
default Goto sizeof volatile
do If static while
Lista das palavras-chaves
Estrutura básica de um programa em C
Um programa é composto de uma ou mais funções. Sendo que a única função obrigatória é a main(). Esta é a primeira função a ser chamada toda vez em que o programa é executado. Toda função deve ter o seu nome precedido de parênteses “()”,indicando que se trata de uma função. Os símbolos “{“ e “}” representam o inicio e o termino da função respectivamente. O programa abaixo mostra a estrutura básica de um programa escrito em C. A palavra reservada void na frente da função main() indica que ela não retorna nenhum valor.
Observando o programa acima podemos perceber que existem duas formas de comenta-lo. O primeiro é utilizando duas barras “//” que comenta todo o código contido naquela linha e não há necessidade de fecha-la. O segundo é usando os caracteres /* e */ que comentam todas as instruções localizadas entre eles. Quando comentamos uma instrução estamos na realidade impedindo que elas sejam compiladas.
...