Unidade 1
Unidade 1
Unidade 1
TÉCNICAS DE PROGRAMAÇÃO
UNIDADE 1 - PROGRAMAÇÃO
ESTRUTURADA
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 1/29
10/04/2022 01:51 Técnicas de Programação
Introdução
Para iniciarmos a nossa conversa, é interessante falarmos sobre o que é a linguagem de programação. Sabemos que
linguagem é todo sistema constituído por códigos, regido por regras, cujo objetivo é transmitir uma informação.
Mas, o que vem a ser linguagem na computação? Linguagens existem apenas para desenvolver programas?
No campo da informática, a linguagem não é usada somente na criação de programas computacionais, mas sim, em
diversas outras ocasiões, podemos citar as linguagens formais, que permitem, por exemplo, a especificação e teste
das próprias linguagens de programação, protocolos de redes de computadores e reconhecimento de padrões em
processamento de textos. Na área de hardware, podemos citar as linguagens de descrição de hardware (HDL –
Hardware Description Language): este tipo de linguagem objetiva o projeto de circuitos eletrônicos digitais, tais
como processadores. A partir do uso de uma HDL, pode-se, por exemplo, criar um chip, configurar uma FPGA
(Field Programmable Gate Array – Matriz de Portas Programáveis em Campo) ou um PSoC (Programmable
System-on-Chip – Sistema programável em um chip). Por fim, podemos mencionar também, as linguagens de
marcação: dotadas de elementos de anotações de forma a formatar um texto a ser exibido ou a ser manipulado.
Como exemplos, temos a HTML (HyperText Markup Languagem – Linguagem de Marcação de HiperTextos) e o
XML (eXtensible Markup Languagem – Linguagem de Marcação Extensível).
No nosso caso, vamos nos aprofundar nas linguagens de programação, mais especificamente, nas linguagens
estruturadas, utilizando para as exemplificações a linguagem C de programação. Então, o que vem a ser
efetivamente uma linguagem de programação?
Neste capítulo, veremos alguns conceitos relacionados à programação estruturada assim como os primeiros passos
para a construção de programas computacionais. Ao final deste você terá condições de implementar programas
manipulando tipos de dados simples, strings e vetores.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 2/29
10/04/2022 01:51 Técnicas de Programação
Figura 1 - Etapas para a geração de um programa (arquivo executável). Neste fluxo não estão representadas as
etapas de teste e verificação de qualidade, que podem provocar uma volta a primeira etapa (processo cíclico).
Fonte: Elaborada pelo autor, 2019.
Como mostrado na figura, falou-se em “plataforma computacional”. Mas, porque não falamos diretamente
“processador” ou “computador”? Para saber mais sobre o tema, clique nas abas abaixo.
Linguagen O fato é que algumas linguagens, como o PHP, Ruby e o Javascript, são linguagens
s interpretadas, ou seja, as suas instruções são executadas por uma máquina virtual que
interpretad converte, em tempo de execução, para o código do hardware específico.
as
Linguagen Por sua vez, linguagens compiladas, como o C/C++ e Pascal, tem os seus códigos de
s baixo nível compatíveis com o processador, gerados na etapa de compilação (produzindo,
compiladas
por exemplo, os arquivos do tipo “.exe”).
Linguagen Existem as linguagens híbridas, tais como o JAVA e o C#, que são compiladas, porém são
s híbridas
executadas sobre uma máquina virtual.
Antes de continuarmos, pode vir à cabeça a seguinte dúvida: a linguagem “C ANSI” (aqui referenciada
simplesmente como “linguagem C”) é diferente da linguagem C++ (C plus plus)? Existem diferenças entre os dois
padrões. Rapidamente falando, a linguagem C++ é uma extensão da linguagem C incorporando, por exemplo, os
conceitos de programação orientada por objetos.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 3/29
10/04/2022 01:51 Técnicas de Programação
VOCÊ O CONHECE?
A linguagem C foi criada nos finais dos anos de 1960 e início dos anos de 1970 por Dennis
Ritchie. Além de criar essa famosa linguagem que ainda está presente em diversas
plataformas e sistemas, ele também foi responsável pela criação do sistema operacional
UNIX. Para saber mais sobre Dennis Ritchie, clique aqui <http://mindbending.org/pt/um-
ano-sem-dennis-ritchie (http://mindbending.org/pt/um-ano-sem-dennis-ritchie)>.
(MAGNUN, 2012). (http://mindbending.org/pt/um-ano-sem-dennis-ritchie)
Para implementar um programa, deveremos ter em mente o seu objetivo e consequentemente quais informações
deverão ser manipuladas e quais informações deverão ser produzidas (variáveis de entrada e de saída) por ele. Com
isso, poderemos refletir na primeira ação a ser feita para que possamos prosseguir na implementação: definição das
variáveis. Na seção a seguir, falaremos sobre o que vem a ser os tipos das variáveis.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 4/29
10/04/2022 01:51 Técnicas de Programação
Quadro 1 - Tipos de dados numéricos básicos encontrados nas linguagens C/C++. Os tamanhos são relativos aos
computadores padrão x86 – podem variar em outras arquiteturas.
Fonte: ASCENCIO, 2012. p.26.
Mas, como definir as variáveis? Vamos supor que temos que fazer um programa que calcule a média da idade de
duas pessoas. Clique nos itens abaixo e aprenda mais sobre a definição dessas variáveis.
•
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 5/29
10/04/2022 01:51 Técnicas de Programação
Antes de colocarmos aqui o nosso primeiro exemplo de código em C, mencionamos que a definição de uma variável
segue a estrutura, de acordo com Deitel, (2011):
Ou
As estruturações acima são utilizadas no código a seguir. Neste código, que objetiva o cálculo e impressão na tela, a
média de duas idades. Os comentários estão precedidos por duas barras (“//”) comentários também poderão aparecer
entre as marcas “/*” e “*/” - usadas quando o comentário extrapolar mais do que uma linha. Os números no lado
direito, colocados como comentários, representam o número das linhas.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 6/29
10/04/2022 01:51 Técnicas de Programação
Linha 6: essa linha contém o processamento para o cálculo da média. Nela aparece o comando de atribuição
(símbolo “=”) responsável por atribuir o resultado do cálculo à variável “media”. Nota-se a utilização da
representação do denominador como número real (float) para que o resultado não seja arredondado para um inteiro,
uma vez que as variáveis utilizadas no numerador são inteiras.
Linha 7: o comando “printf” realiza a impressão do resultado. No caso deste exemplo, a impressão será direcionada
à tela. A mensagem a ser exibida é descrita entre aspas (“média = %f”). Mas, o que vem a ser o “%f”? O símbolo
“%” indica o formato que será exibida a informação. Utilizando-se a letra “f”, a variável será exibida no formato de
número real (float). Caso o programador desejasse também exibir os valores das idades, poderia usar: printf(“A
média das idades %d e %d é %f”, idade1, idade2,media). Neste caso, as idades seriam impressas no formato
decimal inteiro em função da utilização do “%d” na máscara de impressão. Linha 8: retorno do programa principal.
Tal retorno, neste caso, é realizado pelo programa ao sistema operacional de modo que este possa saber a causa do
término da execução do programa: condição normal de término ou em função de alguma falha em seu
processamento.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 7/29
10/04/2022 01:51 Técnicas de Programação
Focando melhor no comando printf, além das opções “%d” e “%f” existem outros formatos de impressão, alguns
estão resumidos no quadro a seguir:
Vamos incrementar um pouco nosso exemplo? Veremos a seguir, algumas funcionalidades que poderão ser
incorporadas aos nossos programas: tratando-se das estruturas de decisão e de repetição.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 8/29
10/04/2022 01:51 Técnicas de Programação
No trecho acima, aparecem elementos que poderão ser mapeados diretamente em uma linguagem de programação,
por exemplo, em C, o condicionante “ ” é definido, na linguagem C, pelo comando “if” ( ) que tem a função de
testar uma condição (“ ”) para que se possa tomar a decisão de executar o bloco contendo
as ações, no nosso exemplo do cotidiano, relativas à ficar em casa ou as ações relativas à sair de casa. As ações
pertinentes à saída de casa são referenciadas, na linguagem C, pelo comando “else” ( ).
Para melhor exemplificar a sintaxe na programação, vamos tomar o exemplo de uma implementação para o cálculo
da média de duas notas fornecidas pelo usuário, de modo a informar, posteriormente, se o cursista foi ou não
aprovado:
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPrA… 9/29
10/04/2022 01:51 Técnicas de Programação
Na codificação acima, foi introduzido mais um comando de entrada e saída: trata-se do ”scanf“ (linhas 2 e 3). Nas
referidas linhas, o programa fornece orientações ao usuário através do comando “printf” e espera pela digitação das
notas fornecidas pelo usuário cujo formato é passado, ao “scanf”, através da diretiva precedida pelo símbolo “%” –
no caso, a variável lida pelo teclado é armazenada no formato “float”. (MIZRAHI, 2008).
Por sua vez, a linha 4 corresponde ao comando condicional “if”, executando as instruções delimitadas pelas
marcações de início de final de bloco – símbolos “{“ (begin – início) e “}” (end – fim), respectivamente. Quando o
bloco envolver apenas uma única instrução, a utilização dos delimitadores de bloco torna-se opcional. Nota-se, no
comando condicional “if” a expressão de teste delimitada pelos parênteses. A expressão de teste admite os demais
operadores de comparação e operadores lógicos:
• operadores de comparação: “>” (maior), “<” (menor), “>=” (maior ou igual), “<=” (menor ou igual), “==”
(igual), “!=” (diferente)
• operadores lógicos: “||” (or – ou), “&&” (e – and), “!” (not – não). Neste caso, podemos escrever, no
código, expressões condicionais compostas, como por exemplo:
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 10/29
10/04/2022 01:51 Técnicas de Programação
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 11/29
10/04/2022 01:51 Técnicas de Programação
No caso do código acima, temos as faixas de desconto do imposto de renda sendo cobertas pelos testes condicionais.
A grande vantagem de se usar testes condicionais encadeados está no fato de que quando uma condição for
satisfeita, as demais comparações não serão realizadas, diminuindo-se assim, o esforço computacional e,
consequentemente, o tempo de processamento. É importante salientar, que esse uso somente é aplicável quando os
casos forem excludentes, ou seja, no caso de nosso exemplo, um salário se enquadrará em apenas uma faixa de
descontos.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 12/29
10/04/2022 01:51 Técnicas de Programação
O comando condicional “if” também poderá escrito na forma de “if ternário”. Por exemplo, suponha o seguinte
código:
No trecho acima, os delimitadores “{“ e “}” (início e fim) foram utilizados porém, pelo fato de que tanto o bloco do
“if” quanto o bloco do “else” conter apenas uma única instrução, poderiam ser omitidos. Podemos notar que a
variável “c” é instanciada tanto no processamento do “if” quanto no processamento do “else”. Sendo assim,
poderemos reescrever o trecho do código substituindo-o pela estrutura do “if ternário”:
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 13/29
10/04/2022 01:51 Técnicas de Programação
No “if ternário”, o valor da instanciação relativa à parte do “if” é precedida pelo símbolo “?” enquanto que a relativa
à parte do “else” é precedida pelo caracter “:”.
VOCÊ SABIA?
Quando temos que selecionar uma ação dentre de várias opções, ao invés de utilizarmos
a estrutura “if...else if...”, podemos usar o comando “switch..case”. Usando o
“switch...case”, os nossos programas ficam mais organizados e claros para serem
entendidos. Para saber mais sobre essa forma, clique aqui
<https://www.embarcados.com.br/comando-de-controle-switch-case/
(https://www.embarcados.com.br/comando-de-controle-switch-case/)>. (GATTO,
2016). (https://www.embarcados.com.br/comando-de-controle-switch-case/)
O controle de fluxo, alterando a sequência da execução das instruções não é específico aos comandos condicionais,
também é pertinente às estruturas de repetição. A seguir, veremos o que são as estruturas ou laços de repetição.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 14/29
10/04/2022 01:51 Técnicas de Programação
Exemplos:
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 15/29
10/04/2022 01:51 Técnicas de Programação
Figura 2 - Três versões de código para o cálculo do fatorial de um número: em (a), usando o comando “for”. Em
(b) cálculo utilizando o comando “do..while” e, em (c) usando o “while”.
Fonte: Elaborada pelo autor, 2019.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 16/29
10/04/2022 01:51 Técnicas de Programação
Na figura acima podemos ver a utilização dos comandos de repetição encontrados na linguagem C: os comandos
“for”, “while” e o “do...while”. Perceberemos, entre (b) e (c), a não necessidade do teste condicional, comparando o
“N” com o valor 0, uma vez que o “while” realiza o teste de permanência do laço antes da primeira execução;
diferente do comando “do..while” que realiza pelo menos uma execução para depois efetuar o teste.
CASO
Atualmente, para o desenvolvimento de sistemas, encontramos dois grandes grupos: as
linguagens puramente estruturadas (como por exemplo, o C Standard) e as linguagens
orientadas a objetos (como o C++ e o Java). Um certo desenvolvedor de sistemas
embarcados (sistemas onde a programação é, geralmente, voltada para um micro
controlador) se deparou com o dilema na escolha do paradigma. Começou a ponderar
alguns pontos, tais como: tamanho de código gerado (sistemas embarcados possuem
grande limitação de memória) e necessidade de ter o máximo controle sobre a
manipulação de memória e ter a possibilidade de otimizar ao máximo o código em
função das particularidades do dispositivo a ser programado (a orientação por objetos,
em seu encapsulamento de código, torna difícil atender a esses requisitos). Analisou
que, mesmo com as facilidades de desenvolvimento, manutenção e portabilidade do
paradigma orientado a objetos, os dois primeiros pontos foram decisivos na adoção de
programação estruturada utilizando-se, para tal, a linguagem C. Moral da história:
mesmo com todas as facilidades proporcionadas pelas linguagens, por exemplo, C++ e
Java, juntando com as facilidades dos ambientes integrados de desenvolvimento, é
sempre bom sabermos uma linguagem que temos maior controle de como as operações
estão sendo feitas, principalmente nos níveis mais baixos de abstração (próximos ao
hardware). Sendo assim, é conveniente que se saiba linguagens do tipo “C Standard”
ou “C ANSI”.
Os comandos de laço de repetição e condicionais são a base da lógica de programação. Sendo assim, um programa é
uma sequência de instanciações e controles de fluxo de execução. Particularmente, os comandos de repetição são
extremamente úteis quando manipulamos variáveis cujas estruturas são denominadas como vetores. É o que
veremos a seguir.
1.4. Vetores
Em algumas situações, temos que manipular um grande número de informações do mesmo tipo, por exemplo,
supondo que devemos armazenar as notas de uma certa prova de uma turma inteira de cursistas. Vamos voltar ao
exemplo da média, abordado anteriormente, havíamos manipulado apenas duas notas, gerando, para isso, duas
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 17/29
10/04/2022 01:51 Técnicas de Programação
variáveis. Você deve se perguntar: Se para duas notas fornecidas pelo usuário usamos duas variáveis, então, para,
por exemplo, 40 notas, deveremos usar 40 variáveis? A resposta tornará a solução mais simples: usaremos um vetor
para armazenar as notas. Mas, então, o que é um vetor?
Vetor é uma estrutura computacional para o armazenamento de dados homogêneos, ou seja, todas as informações do
vetor possuem a mesma tipagem. Para definirmos um vetor, em C/C++, usaremos a seguinte sintaxe:
Para manipularmos um vetor, teremos que usar um índice que indicará qual a célula a ser acessada. A figura a seguir
ilustra a estruturação do vetor de oito posições, cujas células armazenarão valores do tipo “float”.
Figura 3 - Estruturação de um vetor de 8 posições. As posições são acessadas por um índice que varia da posição 0
até a posição (N-1) – no caso deste exemplo, até a posição 7.
Fonte: Elaborada pelo autor, 2019.
Na figura acima, temos a estruturação de um vetor. Mas, como efetivamente declarar um vetor, preenchê-lo e
utilizarmos as informações de suas células? Vamos adaptar o exemplo da média das notas para que a média seja
calculada sobre um conjunto de 8 notas:
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 18/29
10/04/2022 01:51 Técnicas de Programação
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 19/29
10/04/2022 01:51 Técnicas de Programação
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 20/29
10/04/2022 01:51 Técnicas de Programação
Existe um tipo especial de vetor que é representado pelas “strings”. Sendo assim, uma “string” nada mais é do que
uma sequência de caracteres. Veremos, a seguir, um pouco de manipulação de “strings”.
1.5. Strings
mo mencionado anteriormente, as strings são uma sequência de caracteres, ou seja, um vetor onde cada célula
armazenará uma letra (tipo char – caracter). A seguir, são relacionadas algumas das principais funcionalidades para
a manipulação de strings da linguagem C.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 21/29
10/04/2022 01:51 Técnicas de Programação
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 22/29
10/04/2022 01:51 Técnicas de Programação
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 23/29
10/04/2022 01:51 Técnicas de Programação
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 24/29
10/04/2022 01:51 Técnicas de Programação
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 25/29
10/04/2022 01:51 Técnicas de Programação
Quando definir uma string por meio do vetor de caracteres, deve-se sempre dimensionar a variável com um espaço a
mais em relação à demanda do programa. Esse espaço a mais é usado para colocar o caractere terminador de string
(caracter '\x0' – caracter nulo ou caractere 0 – zero). O caractere terminador de string serve para indicar o término de
uma string. Neste caso, por exemplo, a função “ ” executa a impressão dos caracteres de uma string até
encontrar o caractere nulo. Sendo assim, aproveitando o fato de que toda string é finalizada com esse caractere, para
limpar o conteúdo de uma string, basta:
Na linha de código acima, temos duas formas de referenciar o caractere nulo: através de seu valor na tabela ASCII
ou através da simbologia que o representa. A figura a seguir ilustra o formato de uma string sendo finalizada pelo
caractere '\x0'.
Figura 4 - Formato de uma string de 6 posições destacando que a sua última posição deve conter, necessariamente,
o caractere finalizador de string ('\x0').
Fonte: Elaborada pelo autor, 2019.
Analisando-se a figura acima, convém então, reforçar que uma string deve necessariamente ser finalizada com o
caractere '\x0'.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 26/29
10/04/2022 01:51 Técnicas de Programação
Até o momento, tanto nos vetores quanto nas strings, falamos sobre o tipo homogêneo, capaz de armazenar, em sua
estrutura, valores de apenas um tipo. Mas, será possível armazenar, em uma variável, dados heterogêneos, ou seja,
haver vários tipos de informações centradas em apenas uma variável? Sim, isso é possível através da utilização das
estruturas de dados, em C esse tipo é representado pela “struct”.
Síntese
Chegamos ao fim de nossa primeira conversa sobre técnicas de programação. Tivemos a oportunidade de conhecer
alguns conceitos iniciais e comandos básicos de uma linguagem estruturada, com estas informações já será possível
o desenvolvimento de programas computacionais escritos em C. Porém, para desenvolver um programa, não basta
apenas entender a linguagem de programação, mas também, treinar bastante o raciocínio lógico de forma a facilitar
a otimização dos códigos a serem criados. A partir das informações contidas neste capítulo, esperamos que você
continue treinando e incrementando os seus programas computacionais de forma a deixá-los mais funcionais,
corretos e eficientes.
Nesta unidade, você teve a oportunidade de:
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 27/29
10/04/2022 01:51 Técnicas de Programação
Bibliografia
ASCENCIO, A. F. G. Fundamentos de Programação de Computadores: Algoritmos, PASCAL, C/C++ (Padrão
ANSI) e Java. 3. ed. São Paulo: Pearson Education do Brasil, 2012. Disponível em: < (https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson)https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson (https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson)>. Acesso em: 27/06/2019.
ASCENCIO, A. F. G. Fundamentos de Programação de Computadores: Algoritmos, PASCAL, C/C++ (Padrão
ANSI) e Java. 3. ed. São Paulo: Pearson Education do Brasil, 2012. Disponível em: < (https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson)https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson (https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson)>. Acesso em: 27/06/2019.
GATTO, E. C. Comando de Controle Switch Case. 2016. Disponível em: <
(https://www.embarcados.com.br/comando-de-controle-switch-case/)https://www.embarcados.com.br/comando-de-
controle-switch-case/ (https://www.embarcados.com.br/comando-de-controle-switch-case/) >. Acesso em:
05/07/2019.
LOBATO, P. Programação C – Strings (char, strlen, strcmp) – Inverso, Palíndromo. Aula 11. 2012. 18 min.
Disponível em: < (https://www.youtube.com/watch?v=L4IYcJSoH3M)https://www.youtube.com/watch?
v=L4IYcJSoH3M (https://www.youtube.com/watch?v=L4IYcJSoH3M)>. Acesso em: 05/07/2019.
MAGNUN. Um Ano sem Dennis Ritchie. 2012. Disponível em: < (http://mindbending.org/pt/um-ano-sem-dennis-
ritchie)http://mindbending.org/pt/um-ano-sem-dennis-ritchie (http://mindbending.org/pt/um-ano-sem-dennis-
ritchie)>. Acesso em: 01/07/2019. (https://docs.microsoft.com/pt-br/cpp/c-language/c-bit-fields?view=vs-2019)
ASCENCIO, A. F. G. Fundamentos de Programação de Computadores: Algoritmos, PASCAL, C/C++ (Padrão
ANSI) e Java. 3. ed. São Paulo: Pearson Education do Brasil, 2012. Disponível em: < (https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson)https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson (https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson)>. Acesso em: 27/06/2019.
ASCENCIO, A. F. G. Fundamentos de Programação de Computadores: Algoritmos, PASCAL, C/C++ (Padrão
ANSI) e Java. 3. ed. São Paulo: Pearson Education do Brasil, 2012. Disponível em: < (https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson)https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson (https://
Ânimabrasil.blackboard.com/webapps/ga-bibliotecaSSO-BBLEARN/homePearson)>. Acesso em: 27/06/2019.
SOUZA, F. Bits em Linguagem C – Conceito e Aplicação. 2015. Disponível em: <
(https://www.embarcados.com.br/bits-em-linguagem-c/)https://www.embarcados.com.br/bits-em-linguagem-c/
(https://www.embarcados.com.br/bits-em-linguagem-c/)>. Acesso em: 01/07/2019.
https://student.ulife.com.br/ContentPlayer/Index?lc=TPY7fHny1ACIZmPBefWclg%3d%3d&l=B%2baqGempBKeBQBug5bwR2g%3d%3d&cd=caE302lPr… 28/29