Você está na página 1de 58

Programação em C/C++

Fundamentos

Programação – Redes e Internet


Objetivos

• Conceber programas em linguagem C/C++.

1
Conteúdos
• Estrutura de um programa em C/C++
• Dados em C
• Estudo e emprego da função printf()
• Cadeia de caracteres e entrada e saída de dados formatados
• Operadores e expressões em C/C++
• Estruturas repetitivas em C/C++
• Estruturas repetitivas complexas
• Estruturas alternativas em C/C++
• Funções
• Matrizes
• Cadeias de caracteres (string)

2
Breves noções
• Programação pode ser definida como o ato de descrever um
algoritmo que resolva um problema proposto de forma aplicável.
• É o instrumento que permite a execução das tarefas automatizadas
de um sistema informático.

3
Breves noções
• Programa é um conjunto de instruções percetíveis pelo computador
que permitem realizar um trabalho ou resolver um problema.
• Um programa deve ser finito, ou seja, tem que ter um início e um fim.

4
Breves noções
• Linguagem de Programação comunica instruções para um
computador através de um método padronizado.
• Possui uma série de regras semânticas e sintáticas que são utilizadas
para definir um programa de computador.
• O programador utiliza a linguagem de programação para definir
especificamente os dados sobre os quais um computador irá atuar,
como os dados serão armazenados e transmitidos e as ações
tomadas em diversos contextos.
• Essa linguagem é codificada em vários tipos de código, como se
fossem alfabetos diferentes.

5
Breves noções
• Ambiente de programação ou ambiente de desenvolvimento é o
conjunto de ferramentas utilizadas para a elaboração de um
programa (Editores de Texto, …).

6
Breves noções
• Recursos são um conjunto de componentes de hardware utilizados
para a elaboração de um programa (CPU, disco rígido, memória…..).

7
Metodologias em programação local
• Metodologia da programação é o conjunto de normas, métodos e
anotações que nos indicam a forma de programar.
• Cada linguagem de programação segue uma metodologia diferente.
• Os princípios metodológicos têm de ser iguais para todas as
linguagens.

8
Metodologias em programação local
• O computador só entende uma linguagem conhecida como código
binário ou código máquina, que consistente em zeros e uns (0 e 1);
• Só utiliza 0 e 1 para codificar qualquer ação.
• As linguagens mais próximas à arquitetura hardware denominam-se
linguagens de baixo nível;
• As que se encontram mais próximas aos programadores e utilizadores
denominam-se linguagens de alto nível.

9
Metodologias em programação local
LINGUAGEM CARACTERÍSTICAS
Linguagem de Máquina Única compreendida pelo computador
Específica de cada computador

Linguagens de Baixo Nível Utiliza mnemónicos para representar instruções.


Ex: Assembly

Linguagens de Alto Nível Utiliza instruções próximas da linguagem


humana de forma a facilitar o raciocínio.
Ex: Pascal, C

10
Metodologias em programação local
Evolução
• Em meados da primeira guerra mundial houve uma evolução
significativa no segmento corporativo;
• Nesta época o Mundo passava por intensas transformações e isto
provocou drásticas mudanças no ciclo produtivo das empresas e
percebeu-se a necessidade de controlar o seu processo de trabalho;
• Baseado nestas transformações houve a necessidade de se aplicar o
conceito de dinamização de processos e daí surgiu a necessidade de
se administrar grandes volumes de dados em organizações de todos
os setores.

11
Metodologias em programação local
Evolução
• Com a criação dos computadores comerciais após a segunda guerra
mundial houve um aumento significativo na dinamização da
indústria de computadores e, consequentemente, o processo de
construção de software, para que os mesmos automatizassem
processos manuais e pudessem avaliar situações complexas que são
parte integrante do quotidiano das organizações.
• E, a partir desse cenário, criaram-se modelos de desenvolvimento de
software que atendessem a determinadas necessidades específicas e
ao mesmo tempo pudessem ser utilizados na elaboração de software
sem grandes complexidades.

12
Metodologias em programação local
Modelo cascata
• Também chamado de Clássico ou Linear;
• Caracteriza-se por possuir uma tendência na progressão sequencial
entre uma fase e a seguinte;
• Eventualmente, pode haver uma retroalimentação de uma fase para
a fase anterior, mas de um ponto de vista macro, as fases seguem
fundamentalmente de forma sequencial;
• As fases de análise, projeto, implementação e testes são realizados
uma única vez.

13
Metodologias em programação local
Modelo cascata

14
Metodologias em programação local
Modelo iterativo ou incremental
• Proposto para ser a resposta aos problemas encontrados no Modelo
em Cascata;
• Um processo de desenvolvimento, divide o desenvolvimento de um
produto de software em ciclos;
• Em cada ciclo de desenvolvimento, podem ser identificadas as fases
de análise, projeto, implementação e testes.
• Um sistema de software é desenvolvido em vários passos similares
(iterativo);
• Em cada passo, o sistema é estendido com mais funcionalidades
(incremental).

15
Metodologias em programação local
Modelo iterativo ou incremental

16
Metodologias em programação local
Modelo em espiral
• Desenvolvido em uma sequência de iterações;
• Cada iteração corresponde a uma volta na espiral;
• Cada fase ou atividade é um setor, um “ângulo” da volta;
• Com o surgimento deste modelo pôde realizar-se a construção de
versões básicas dos produtos em prazos curtos e deixar novos
requisitos para implementação futura, no momento em que se
tornam essenciais.

17
Metodologias em programação local

Modelo em espiral

18
Metodologias em programação local

• Conforme o avanço tecnológico foi ocorrendo à mudança de


paradigma no desenvolvimento de sistemas aconteceu e atualmente
trabalhamos com o conceito de metodologia ágil.

19
Metodologias em programação local
Metodologia ágil
• Conjunto de metodologias de desenvolvimento de software;
• O desenvolvimento ágil, tal como qualquer metodologia de software,
providencia uma estrutura conceitual para reger projetos de
engenharia de software.

20
Metodologias em programação local
Metodologias clássicas vs Metodologias ágeis
METODOLOGIAS CLÁSSICAS METODOLOGIAS ÁGEIS

Processos e ferramentas Pessoas e iterações

Documentação extensa e confusa Software executável

Constantes negociações de contratos Colaboração do cliente

Seguem planos previamente definidos Respostas rápidas para as mudanças

21
Metodologias em programação local
Desenho estruturado
• Programação estruturada é um paradigma de programação, 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 ou seleção;
• Iteração ou repetição.

22
Metodologias em programação local
Desenho estruturado
• Orienta os programadores para a criação de estruturas simples nos
programas, usando as sub-rotinas e as funções;
• Foi a forma dominante na criação de software anterior
à programação orientada por objetos.

23
Metodologias em programação local
Desenho estruturado
• Apesar de ter sido sucedida pela programação orientada por objetos,
pode dizer-se que a programação estruturada ainda é muito
influente, uma vez que grande parte das pessoas ainda aprendem
programação através dela;
• Para a resolução de problemas relativamente mais simples e diretos,
a programação estruturada é muito eficiente.
• Inúmeras linguagens ainda extremamente relevantes nos dias de
hoje, como PHP ainda utilizam o paradigma estruturado (muito
embora possuam suporte para a orientação a objeto).

24
Metodologias em programação local
Orientadas por objeto
• Programação orientada a objetos (POO) é 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;
• O paradigma "orientação a objeto", tem bases conceituais e origem
no campo de estudo da cognição, que influenciou a área
de inteligência artificial e da linguística, no campo da abstração de
conceitos do mundo real.

25
Metodologias em programação local
Orientadas por objeto
• Na POO, implementa-se um conjunto de classes que definem os
objetos presentes no sistema de software;
• Cada classe determina o comportamento (definido nos métodos) e
estados possíveis (atributos) de seus objetos, assim como o
relacionamento com outros objetos. C++, Java e Python são exemplos
de linguagens de programação orientadas a objetos;
• PHP (a partir da versão 4.0), Perl (a partir da versão 5) e Visual
Basic (a partir da versão 4) são exemplos de linguagens de
programação com suporte a orientação a objetos.

26
Princípios do método
Teoria dos conjuntos aplicada aos dados
• Entendemos por conjunto o agrupamento de elementos que
possuem características semelhantes, coleção de objetos.
• O conjunto pode ser considerado especial no caso de termos um
conjunto vazio (não possui elementos) ou conjunto universo (possui
todos os elementos do estudo em questão).

27
Princípios do método
Teoria dos conjuntos aplicada aos dados
• A Teoria dos Conjuntos foi criada e desenvolvida pelo Matemático
russo George Cantor (1845-1918), trata-se do estudo das
propriedades dos conjuntos, relações entre conjuntos e relações
entre os elementos e o próprio conjunto.

28
Princípios do método
Teoria dos conjuntos aplicada aos dados
• Um conjunto pode possuir subconjuntos, se todos os elementos do
conjunto A pertencem ao conjunto B podemos dizer que A é
subconjunto de B.
• Qualquer conjunto possui como subconjunto um conjunto vazio
representado por { } ou Ø.

29
Princípios do método
Teoria dos conjuntos aplicada aos dados
• A união de dois ou mais conjuntos constitui um novo conjunto com
todos os elementos dos outros dois.
• A intersecção entre dois ou mais conjuntos constitui um conjunto que
contém simultaneamente os elementos de dois ou mais conjuntos.
• A diferença entre dois conjuntos A e B tem como resultado um
conjunto com os elementos de A que não pertencem a B.

30
Princípios do método
• Representações gráficas dos conjuntos
• Dados dois conjuntos A e B, a relação existente entre os elementos
do conjunto A com os elementos do conjunto B receberá o nome de
função. Notação f: A→B.

31
Princípios do método
Operações sobre conjuntos
• União
• Interseção
• …

32
Princípios do método
Dados agrupados em conjuntos
• Um “conjunto de dados" ou dataset é uma coleção de dados
normalmente tabulados.
• Por cada elemento (ou indivíduo) indicam-se várias características.
• Cada coluna representa uma variável particular.
• Cada linha corresponde a um determinado membro do conjunto de
dados em questão.
• Cada valor é conhecido como um dado.
• O conjunto de dados pode incluir dados para um ou mais membros,
correspondente ao número de linhas.
33
Princípios do método
Dados agrupados em conjuntos
• Conjuntos de dados não tabulares podem assumir a forma de cadeias
de caracteres envolvidas por marcações, como em um arquivo XML.
• Quase todos os conjuntos de dados, embora eles muitas vezes
possam ser escritos usando linguagens de programação de alto
nível e números em base decimal, terminam escritos em código de
máquina uma vez que o processamento por computador é envolvido.
• Assim, por toda a sua diversidade semântica e formas tabular ou não
tabular, a maioria dos conjuntos de dados pode ser expressa
em código binário como uma longa sequência de zeros e uns.

34
Princípios do método
Dados agrupados em conjuntos
• Aplicação da teoria dos conjuntos em junções SQL.
• SQL (Structured Query Language) é uma linguagem de programação
especialmente designada para gestão de dados em um sistema de
base de dados relacional.
• Na SQL, algumas das operações de junções entre tabelas podem ser
facilmente demonstradas com a teoria dos conjuntos.
• Os diagramas de Venn simbolizam graficamente as propriedades
relativas aos conjuntos e sua teoria.

35
Princípios do método
Dados agrupados em conjuntos

36
Princípios do método
Dados agrupados em conjuntos
• A linguagem SQL possui, além das junções, outros operadores de
conjunto da álgebra relacional, entre eles os operadores
• UNION
• INTERSECT
• EXCEPT

37
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 (subprogramas)
• Definição da função main (programa principal)

38
Estrutura de um programa

A ordem não é necessariamente esta...

39
Estrutura de um programa

ESTRUTURA DE UM PROGRAMA EM C
#include <biblioteca.h>
tipo_da_funcao main(Lista_de_Parametros)
{
Este trecho é reservado para o corpo da função, com a declaração de suas
variáveis locais, seus comandos e funções de trabalho;
}

40
Estrutura de um programa

• void – definição de um parâmetro (argumento) não conhecido;


• main() – a primeira e principal função a ser executada;
• { - inicia ou abre o corpo da função (programa), definição do inicio de um
bloco;
• } – finaliza ou fecha o corpo da função, definição da finalização de um bloco.

41
Estrutura de um programa

#include <stdio.h>
void main(void){
printf("Olá Mundo");
}

42
Estrutura de um programa
#include
Tem por finalidade incluir no programa o arquivo de cabeçalho stdio (uma
biblioteca), que possui definições de sub-rotinas relativas às operações
de entrada/saída (I/O), como leitura de dados digitados no teclado e
exibição de informações no ecrã do programa de computador. - printf ;
void main ()
Estabelece o inicio do bloco principal do programa;
printf
Imprime uma mensagem no ecrã.

43
Estrutura de um programa
Regras de dedução para a identificação dos procedimentos

• 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 ...

44
Estrutura de um programa
Porque usar funções ?
• Para permitir o reaproveitamento de código já construído;
• Para evitar que um trecho de código seja repetido várias vezes dentro de um
mesmo programa;
• Para permitir a alteração de um trecho de código de uma forma mais rápida.
Com o uso de uma função é preciso alterar apenas dentro da função que se
deseja;
• Para que os blocos do programa não fiquem grandes demais e, por
consequência, mais difíceis de entender;
• Para facilitar a leitura do programa-fonte;
• Para separar o programa em partes (blocos) que possam ser logicamente
compreendidos de forma isolada.

45
Corpo de um programa

Formato Geral de uma Função em C

tipo_da_funcao NomeDaFuncao (Lista_de_Parametros)


{
// corpo da função
}
A Lista_de_Parametros, também é chamada de Lista_de_Argumentos, é opcional.

46
Desenho de formatos para entrada e saída dos dados
em ecrã
Normas de desenho
• O conceito de design responsivo não é uma grande novidade, mas
tem chamado bastante atenção nos últimos tempos com o
crescimento do mercado de dispositivos móveis, principalmente por
conta dos tablets e smartphones de tamanhos e resoluções cada vez
mais variadas.

47
Desenho de formatos para entrada e saída dos dados
em ecrã
Aspetos a ter em conta no desenho
• Modularidade e níveis de abstração
• Desenho colaborativo
• Desenho da interface com o utilizador
• Concorrência
• Desenho de padrões e reutilização

48
Desenho de formatos para entrada e saída dos dados
em ecrã
Interface homem/máquina
• Elementos a ter em conta
• Metáforas: termos, imagens, conceitos que podem ser reconhecidos e
aprendidos
• Modelo mental de organização e representação dos dados, das funções, das
atividades
• Regras de navegação para o modelo
• Aspeto: características da aparência do sistema que transmite informação ao
utilizador
• A intuição: técnicas de interação com o utilizador
• Aspetos culturais
• Preferências culturais

49
Desenho de formatos para entrada e saída dos dados
em ecrã
Desenho de entradas e saídas de dados em suporte papel
• Um protótipo em papel pode começar de maneira simplificada e
ganhar complexidade ao longo das iterações com o usuário ou com a
equipe.
• Pode ser usado quando é necessário avaliar o fluxo de informações e
a navegação de um sistema, para explorar possibilidades
de comunicação de um produto ou apenas para apresentação de
uma ideia a utilizadores, empresa ou à própria equipa de projeto,
para gerar entendimento.

50
Desenho de formatos para entrada e saída dos dados
em ecrã
Desenho de entradas e saídas de dados em suporte papel
• Esses testes podem acontecer em contextos variados, desde
ambiente controlados, como num laboratório de usabilidade, ou em
sessões com grupos de utilizadores finais e potenciais consumidores.
• Como o resultado final será em papel, pode ser executado à mão,
apenas como um rascunho de uma solução, ou com auxílio de um
computador, a fim de se avaliar detalhes de uma interface, produto
ou comunicar serviços.

51
Desenho de formatos para entrada e saída dos dados
em ecrã
Uso do sistema gráfico de navegação por menus
• Uma boa navegação é a base de qualquer ferramenta.
• É um dos determinantes que o utilizador conseguiu atingir seu
objetivo.
• Diversas pesquisas de usabilidade mostram que o menu de
navegação é um dos principais pontos de foco do utilizador ao
procurar algo.

52
Desenho de formatos para entrada e saída dos dados
em ecrã
Acesso a documentação Online
• Guardar ficheiros na nuvem permite aceder a eles em qualquer lugar
e torna mais fácil partilhá-los com outros.

53
Desenho de formatos para entrada e saída dos dados
em ecrã
Programas e utilitários
• Utilitários são programas utilizados para suprir deficiências
dos sistemas operativos.
• Compiladores de linguagens de programação;
• Compactação de dados;
• Aumento de desempenho de máquinas;
• Acesso à Internet;
• …
• A maior parte dos sistemas operativos já incluem muitos utilitários
pré-instalados.

54
Desenho de formatos para entrada e saída dos dados
em ecrã
Programas e utilitários

55
Dicionário de dados

Definição de dicionário de dados


• Coleção de metadados que contêm definições e representações
de elementos de dados.

56
Dicionário de dados
Dicionário de dados em programação
• Dentro do contexto de SGBD, um dicionário de dados é um grupo de
tabelas, habilitadas apenas para leitura ou consulta, ou seja, é uma
base de dados, propriamente dita, que entre outras coisas, mantém
as seguintes informações:
• Definição precisa sobre elementos de dados
• Perfis de utilizadores, papéis e privilégios
• Descrição de objetos
• Restrições de integridade
• …

57

Você também pode gostar