Programação de Soluções Computacionais: Algoritmos
Programação de Soluções Computacionais: Algoritmos
Programação de Soluções Computacionais: Algoritmos
Soluções
Computacionais
Algoritmos
–2–
Conteúdo
• Conceitos básicos da programação.
• Introdução a Linguagem (Conceitos básicos)
– Tipos de Dados;
– Operações;
– Comandos de Entrada e Saída de Dados;
• Estruturas de Controle
– Estruturas sequenciais;
– Estruturas condicionais;
– Estruturas de repetição;
• Estrutura de Dados Compostas
– Vetores, Matrizes
–3–
Ferramentas para Prática
• Utilizaremos as ferramentas abaixo para o
desenvolvimento das práticas
– Falcon C++ . Disponível :
https://sourceforge.net/projects/falconcpp/
– NetBeans. Disponível :
https://netbeans.apache.org/front/main/index.html
–
–4–
Conceitos Básicos
• Algoritmos
– A ideia de algoritmos surge pela necessidade do homem em
resolver problemas.
– A tarefa de Processamento de Dados da máquina consiste em
tomar certa informação, processá-la e obter o resultado
desejado.
–5–
Conceitos Básicos
• Como utilizar o algoritmo para solução de problemas
–6–
Conceitos Básicos
Situação Problema :
– Calcular a média de 3 Provas. P1, P2, P3
• 1 – Identificar as Entradas
P1, P2, P3
• 2 – Processamento
(P1+P2+P3)/3
• 3 – Saída
Média Final
–7–
Algoritmos estruturados
Estruturas de um Algoritmo (Estruturas de Controle)
– 1 – Sequencial
• (Os Comandos serão executados um após o outro)
– 2 – Condicional
• (Os Comandos só serão executados se uma determinada
condição for satisfeita)
– 3 – Repetitiva
• (Os Comandos serão executados enquanto uma
determinada condição for satisfeita)
–8–
Conceitos Básicos
• Definição : Algoritmos Estruturados
–9–
Algoritmos estruturados
– 10 –
Algoritmos estruturados
Fluxograma
– 11 –
Estruturas de Controle
• 1 – Seqüencial
• (Os Comandos executados um após o outro)
– 12 –
Estruturas de Controle
• 2 – Condicional
• (Os Comandos só serão executados se uma determinada
condição for satisfeita)
– 13 –
Estruturas de Controle
• 2 – Condicional
• (Os Comandos só serão executados se uma determinada
condição for satisfeita)
– 14 –
Estruturas de Controle
• 1 – Repetição
• (Os Comandos só serão executados se uma determinada
condição for satisfeita)
– 15 –
Exercício
Problema
– 16 –
Visão Geral - Características
– 17 –
Linguagem de Programação C - Histórico
• Criada entre 1969 e 1973 por Dennis Ritchie.
– 19 –
Visão Geral – Linguagem C
• A Linguagem C é considerada uma linguagem de Nível Médio.
– As Linguagens de Baixo Nível compreendem características da Arquitetura do
Computador. (Linguagens de Primeira e segunda Geração).
– As Linguagens de Alto Nível são linguagens com um nível de abstração
relativamente alto. Elas estão mais próximas da linguagem humana.
• Pascal, COBOL, FORTRAN
Nível Alto • Basic, Ada
• C, C++
Nível Médio • FORTH
– 20 –
Visão Geral – Classificação das Linguagens
– 21 –
Visão Geral - Características
• Características da Linguagem C
– Estruturas em blocos - Funções -
Alta Portabilidade
– Poucas restrições - Reaproveitamento de código.
– 22 –
Visão Geral - Características
• Processo de compilação na Linguagem Java
– 23 –
Visão Geral - Características
• Todo programa em C é formado por uma ou mais funções. A função
main() é a única que precisa necessariamente estar presente no código.
#include <stdio.h>
int a, b, c;
main()
{
scanf("%d",&a);
scanf("%d",&b);
c = a + b;
printf(" \n a + b = %d", c);
}
– 24 –
Visão Geral - Características
• Todo programa em C é formado por uma ou mais funções. A função
main() é a única que precisa necessariamente estar presente no código.
#include <stdio.h>
int a, b, c;
* Os programas em C são
formados basicamente por
funções. main()
– Facilitam a modularização
{
e passagem de parâmetros
entre os módulos. scanf("%d",&a);
scanf("%d",&b);
c = a + b;
printf(" \n a + b = %d", c);
}
– 25 –
Visão Geral - Características
• Todo programa em C é formado por uma ou mais funções. A função
main() é a única que precisa necessariamente estar presente no código.
#include <stdio.h>
int a, b, c;
main()
{
scanf("%d",&a);
scanf("%d",&b);
c = a + b;
printf(" \n a + b = %d", c);
}
– 28 –
Visão Geral – Linguagem C
• Comparando diferentes Níveis de Linguagens
– 29 –
Visão Geral – Linguagem C
• Estrutura básica de um programa em C #include <stdio.h>
#include <stdlib.h>
Diretivas de compilação para inclusão das bibliotecas
/* Meu primeiro código em C */
Comentário int a, b, c;
import java.util.Scanner;
int a, b, c;
a = entrada.nextInt();
b = entrada.nextInt();
c = a + b;
System.out.println(" a + b = " + c);
}
– 31 –
Estrutura de Dados – Tipo de Dados
• Podemos dizer que um tipo de dado refere-se a um conjunto de valores e a um
determinado conjunto de operações sobre estes valores.
• Tipos de Dados Básicos
C
char Em C, “Verdadeiro” é qualquer valor diferente de zero.
int 1 = Verdadeiro ; 0 = Falso
float / double
int O tipo void declara explicitamente uma função que não
void retorna valor algum.
– 33 –
Comandos de Entrada e Saída
• Alguns
especificadores de
formato da função
“printf()”
– 34 –
Comandos de Entrada e Saída
• Alguns especificadores de formato da função “scanf()”
– 35 –
Operadores
• Comparação entre os Operadores Básicos.
Operadores comuns nas
C Operação
+ Adição Linguagem C e Java
- Subtração
* Multiplicação Operadores Aritméticos
/ Divisão
% Resto
! Negação
&& Conjunção
|| Disjunção Operadores Lógicos
– 36 –
Estruturas de Controle
• Sequencial – (C semelhante a Java)
instrução1;
instrução2;
#include <stdio.h>
instrução3;
...; int a, b, c;
...;
main()
{
scanf("%d",&a);
scanf("%d",&b);
c = a + b;
printf(" \n a + b = %d", c);
}
– 37 –
Estruturas de Controle
• Condicional - (C semelhante a Java)
if - else if (condição)
if (condição)
#include <stdio.h> {
instrução1; int a, b, c; instrução1;
instrução2;
main()
}
{
if (condição) scanf("%d",&a);
scanf("%d",&b); if (condição)
instrução1;
if (a < b) {
else { instrução1;
printf(" \n a é menor ”); instrução2;
instrução2; }
printf(" \n b é maior ”);
else
}
{
else instrução3;
{ instrução4;
printf(" \n b é menor ”); }
printf(" \n a é maior ”);
}
}
– 38 –
Estruturas de Controle
• Repetição - (C semelhante a Java) while
#include <stdio.h>
int k;
while (condição)
{
main()
instrução1; {
instrução2; k = 0;
} while (k <= 100)
{
printf(" \n %d ”, k);
k = k + 2;
}
for }
#include <stdio.h>
main()
for (inicialização; condição; incremento) {
{ for (int k = 0; k <= 100; k=k+2)
instrução1;
instrução2;
{
} printf(" \n k = %d", k);
}
}
– 39 –
Exercício
Problemas
– 40 –
Problemas – Estruturas Condicionais
04 – Faça um algoritmo que calcule a média ponderada de um aluno, a partir de
suas 3 notas obtidas no curso. Sabendo-se que a primeira avaliação tem peso 2, a
segunda tem peso 4, a terceira tem peso 4.
Mostre ao final a mensagem:
“A MEDIA FINAL DE .........FOI .......”. Informar também se o aluno foi
aprovado, Mostrando a mensagem “APROVADO”, caso a nota final seja maior ou
igual a 7,0.
– 41 –
Problemas – Estruturas de Repetição
07 – Faça um programa para mostrar os números de 1 a 100
– 42 –
Problemas – Estruturas de Repetição
10 – A partir da leitura de um número indeterminado de
valores não nulos, determinar e exibir quantos desses
valores são positivos e quantos são negativos. Determinar
também a soma dos positivos e a soma dos negativos. O
último valor a ser lido é zero (0 é o flag).
– 43 –