Você está na página 1de 18

Faculdade Politécnica de Uberlândia

Cursos de Engenharia

Programação Básica – 2016/2

Prof. Dr. Bruno H. O. Mulina


Sistema de avaliação
• Três avaliações
• P1 – 20 pts
• P2 – 20 pts
• P3 – 30 pts

• Material : Lápis, Caneta, Borracha, Tabelas


• Sem consulta externa
• Individual
• Proibido qualquer Material eletrônico (Celulares e afins)
• Sem pontuação extra
• Vista realizada SOMENTE na data estipulada pelo professor
• Qualquer atividade fora da normalidade será motivo de anulação
da prova (NOTA ZERO)

• Ausência em atividades: Justificadas por meio de atestados e


entregues ao Poli Atendimento.
• 3 Trabalhos:
• T1:
• Atividades fora de horário de aula;
• Repassados aos alunos por meio do portal RM;
• Feito de forma manuscrita
• CÓPIA : NOTA ZERO
• T2:
• Atividade realizada em partes
• Repassado ao aluno em sala de aula somente
quando presente
• CÓPIA : NOTA ZERO
• APS***
• Realizado somente fora de horário de aula;
• Somente aceitos na data estimada.
• CÓPIA : NOTA ZERO

• Critérios de avaliação: desenvolvidos a mão (salvo


aviso) apresentação, solução dos exercícios, indicio de
plagio, atraso
Avaliações Nota Aplicação Vista de
Prova
P1 20 22 a 28 set Aula seguinte
P2 20 03 nov
P3 30 01 a 07 dez

Trabalhos Nota Postagem Entrega Devolução

T1 10
T2 10 Ao longo do semestre
APS 10
Data
Ementa Evento
Apresentação da disciplina, sistema avaliativo, introdução à programação.
Interface do software Scilab - analise de exemplos para entendimento do funcionamento do software
Tipos de variáveis : numérica, simbólica e arrays
Construção de Scripts e funções
Operações com matrizes e vetores
Funções de repetição: for e while
Funções condicionais: if e select
Solução do T1. Laboratorio 1
P1
Vista de Prova P1. Apresentação dos temas do APS. Aplicação do T2
Laboratorio 2: Criação de funções e scripts
Laboratorio 3: Aplicação em soluções numericas - método de Newton-Raphson
Laboratorio 4: Series e Sequencias - Série de Ricch e Fibonachi
T2. Avaliação do APS
Laboratorio 5: Labirinto matricial
Laboratorio 5: Labirinto matricial. T2
Apresentação do APS
T2
P2
Vista de Prova. Apresentação de aplicação real para programação.
Apresentação do software Matlab.
Objetivos
• Desenvolvimento de códigos para realização de operações
logicas e matemáticas;
• Conversão de uma estrutura lógica em uma sequência de
instruções computacionais;
• Tradução de metacódigos para programação Scilab;
• Entendimento das estruturas lógicas de programação;
• Manipulação de dados conforme aplicação;
Ferramentas
• Software Scilab
• Disponível em: http://www.scilab.org/
Conceitos básicos
• Lógica:
Lógica de programação é a técnica de encadear
pensamentos para atingir determinado objetivo;

• Sequência Lógica:
Sequência Lógica são passos executados até
atingir um objetivo ou solução de um problema;
Conceitos básicos
• Pseudocódigo:
Este nome é uma alusão à posterior implementação em uma
linguagem de programação, ou seja, quando formos
programar em uma linguagem, por exemplo Visual Basic,
estaremos gerando código em Visual Basic.
São independentes das linguagens de programação.
Ao contrário de uma linguagem de programação não existe
um formalismo rígido de como deve ser escrito o algoritmo;
Conceitos básicos
• Algoritmo:
Um algoritmo é formalmente uma sequência finita de passos
que levam a execução de uma tarefa. Podemos pensar em
algoritmo como uma receita, uma sequência de instruções
que dão cabo de uma meta específica. Estas tarefas não
podem ser redundantes nem subjetivas na sua definição,
devem ser claras e precisas;
Conceitos básicos
• Instruções:
Instruções são um conjunto de regras ou normas definidas
para a realização ou emprego de algo. Em informática, é o que
indica a um computador uma ação elementar a executar,
como somar, subtrair, testar valores, deslocar bits, etc...

• Programa:
Os programas de computadores nada mais são do que
algoritmos escritos numa linguagem de computador (Pascal,
C, Cobol, Fortran, Visual Basic entre outras) e que são
interpretados e executados por uma máquina, no caso um
computador.
Um programa é por natureza muito específico ( dependente
da linguagem de programação) e rígido em relação aos
algoritmos da vida real;
Diferença entre Interpretadores,
Compiladores e Tradutores
1. INTERPRETADOR (Ex. Scilab, LUA, JavaScript)

O programa conversor recebe a primeira instrução do programa


fonte, confere para ver se está escrita corretamente, converte-a em
linguagem de máquina e então ordena ao computador que execute
esta instrução. Depois repete o processo para a segunda
instrução, e assim sucessivamente, até a última instrução do
programa fonte. Quando a segunda instrução é trabalhada, a
primeira é perdida, isto é, apenas uma instrução fica na memória
em cada instante. Se este programa fonte for executado uma
segunda vez, novamente haverá uma nova tradução, comando por
comando, pois os comandos em linguagem de máquina não ficam
armazenados para futuras execuções. Neste método, o programa
conversor recebe o nome de INTERPRETADOR.
2. COMPILADOR (Ex. C++, Pascal, Visual Basic)

O programa conversor recebe a primeira instrução do programa


fonte, confere-a para ver se está escrita corretamente, converte-a
para linguagem de máquina em caso afirmativo e passa para a
próxima instrução, repetindo o processo sucessivamente até a
última instrução do programa fonte. Caso tenha terminado a
transformação da última instrução do programa fonte e nenhum
erro tenha sido detectado, o computador volta à primeira instrução,
já transformada para linguagem de máquina e executa-a. Passa à
instrução seguinte, executa-a, etc., até a última. Se este programa
for executado uma segunda vez, não haverá necessidade de uma
nova tradução. A cada modificação introduzida no programa fonte
é necessária uma nova tradução completa para obter um novo
programa objeto, o que torna o processo mais dificultoso na fase
de desenvolvimento, quando muitas modificações são feitas
3. TRADUTOR ( .NET, Java)

Neste método, o computador ao invés de armazenar as instruções


do programa fonte tal como lhe são fornecidas, ele transforma-as
em códigos intermediários, que não exigem tanto espaço de
memória como as instruções originais. Estas instruções
intermediárias são em seguida transformadas em linguagem de
máquina e executadas, funcionando daí por diante como no
INTERPRETADOR. Neste método o programa conversor é
conhecido como TRADUTOR.
Linguagens de Programação

1. LINGUAGEM ESTRUTURADA ( C, SCILAB, PASCAL):

É uma forma de programação de computadores que preconiza


que todos os programas possíveis podem ser reduzidos a
apenas três estruturas: sequência, decisão e iteração (esta
última também é chamada de repetição), desenvolvida por
Michael A. Jackson em 1975.

Permite aglomeração de trechos de código de maior uso e em


uma subrotina ou função. Normalmente consegue
parametrizar (nomear) estas funções. Um bom exemplo é criar
uma função que escreve em um dado arquivo
2. LINGUAGEM ORIENTADA À OBJETO (JAVA, C++, C#):

É um modelo de análise, projeto e programação de sistemas


de software baseado na composição e interação entre
diversas unidades de software chamadas de objetos.

Permite que se abstraia as rotinas neste tipo de


programação. Possui entidades que podem possuir
atributos (parâmetros) e métodos (funções), operando como
programas independentes. Programar orientado à objeto é
diferente na modelagem dos dados.
3. LINGUAGEM DE MODELAGEM (UML, ROSE, FLUXOGRAMAS):

Não são linguagens de programação propriamente ditas. São


diagramas (desenhos) que representam relações entre classes,
objetos, interfaces, atores, eventos, cenários, etc. Pode conter
programas que permitam criar código à partir de um diagrama
UML ou fazer engenharia reversa em um código.
Estruturado:
Orientação à Objeto:
#include "stdio.h"
#include "stdio.h"
float media(int lista[], int tamanho); #include "data.h" // inclui o Tipo Abstrato de Dados

int main() int main()


{ {
int nota[5] = {10, 5, 8, 6, 6}; struct rgData dt, hj;
printf("Média das notas = %6.2f", media(nota, 5));
} printf("Informe a sua data de nascimento (dd/mm/aaaa):\n");
scanf("%d/%d/%d", &dt.dia, &dt.mes, &dt.ano);
float media(int lista[], int tamanho)
{ hj = dataHoje(); // recebe a data do sistema operacional
int smNotas = 0;
for (int i=0; i<tamanho; i++) printf("\nHoje eh dia %.2d/%.2d/%d.\n", hj.dia, hj.mes, hj.ano);
{ printf("\nSua idade eh igual a %d anos.\n", calculaIdade(dt));
smNotas = smNotas + lista[i]; }
}
return(float(smNotas)/tamanho);
}