Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

CONCEITOS DE
PROGRAMAÇÃO
Aula 1
INTRODUÇÃO A
CONCEITOS DE
PROGRAMAÇÃO
Introdução a conceitos de
programação
Sejam bem-vindos à primeira vídeoaula desta unidade de ensino!
Vamos mergulhar no universo dos ambientes de programação em
“C”, explorando ferramentas como VS Code, CodeBlocks entre
outras.
 Nesta aula, vamos entender a importância de escolher o ambiente
de programação certo para o desenvolvimento em “C”. Abordaremos
detalhes sobre a configuração e uso desses ambientes, além de
discutir as vantagens e desvantagens de cada um.
Alto Contraste A- A+ Imprimir
Abordaremos também os compiladores e interpretadores,
compreendendo suas funções e como influenciam no processo de
desenvolvimento de software na linguagem “C”.
Ao final desta aula, esperamos que você esteja mais familiarizado
com os ambientes de programação em “C” e confiante para escolher
a ferramenta mais adequada às suas necessidades.
Aproveite esta oportunidade para expandir seus conhecimentos
sobre os ambientes existentes na programação. A sua participação
ativa é fundamental para tornar essa experiência de aprendizado
ainda mais enriquecedora.
Clique aqui para acessar os slides da sua videoaula.
Bons estudos!
Ponto de Partida
Olá, estudante! Seja bem-vindo à esta aula sobre fundamentos da
linguagem de programação “C”.
Neste momento, vamos dedicar um tempo para entender os
ambientes de desenvolvimento disponíveis para a linguagem “C”,
desde os mais populares, como o VS Code e o CodeBlocks, até
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u3a1_algo_log_pro.pdf
outras opções que podem ser úteis para diferentes necessidades e
preferências.
Além disso, abordaremos conteúdos como compiladores e
interpretadores. Vamos entender como essas ferramentas são
essenciais para traduzir nosso código em instruções compreensíveis
para o computador, e discutiremos as diferenças fundamentais entre
eles.
Por fim, vamos revisitar os conceitos básicos de linguagem de
programação, explorando os fundamentos que nos permitirão
construir programas sólidos em C. Desde variáveis e tipos de dados
até estruturas de controle, pois este conteúdo é fundamental para
continuar desenvolvimento algoritmos e aprofundando em demais
conteúdos.
Para ilustrar a aprendizagem do conteúdo desta aula, imagine que
você foi incumbido de desenvolver um sistema modular para
gerenciar as vendas de uma loja de calçados. O sistema precisa
realizar operações como cadastrar produtos, realizar vendas,
administrar o estoque e emitir relatórios de vendas.
O encerramento desta aula se dará com a aplicação desses
conceitos em um exemplo concreto, demonstrando como esses
conteúdos podem ser trabalhados de maneira eficaz.
Vamos Começar!
Compreender os elementos fundamentais da programação torna-se
imperativo para aqueles que desejam trilhar o caminho da
codificação eficiente e se tornar um desenvolvedor de softwares
robustos e eficazes. Nesta aula, pois, discutiremos três deles: o
ambiente de programação, os compiladores e interpretadores, além
dos conceitos básicos da linguagem de programação, com foco
especial na linguagem C.
Ambiente de programação
O ambiente de programação refere-se ao conjunto de ferramentas e
recursos necessários para escrever, compilar e executar o código.
No caso da linguagem C, os programadores geralmente usam
ambientes integrados de desenvolvimento (IDEs), como o
Code::Blocks ou o Visual Studio. Essas ferramentas oferecem uma
interface amigável, realce de sintaxe, depuração e outras
funcionalidades que facilitam o processo de escrita do código. Além
dos IDEs, os programadores também podem optar por ambientes de
linha de comando, utilizando compiladores como o GCC. Escolher o
ambiente certo, assim, depende das preferências e requisitos
específicos do projeto.
Imagine, a título de exemplo, que estamos usando o Code::Blocks
como para desenvolver um programa simples em C. Podemos
começar criando um programa "Hello World" que exiba uma
mensagem na tela. O IDE nos fornece uma estrutura básica para
começar, facilitando a escrita do código e a compilação do
programa.
Figura 1 | Hello World. Fonte: elaborada pelo autor.
A escolha do ambiente de programação é, portanto, crucial para o
desenvolvimento eficiente do software. Além dos IDEs mencionados,
como o Code::Blocks e o Visual Studio, é importante explorar outras
ferramentas, como o Visual Studio Code, que oferece suporte à
linguagem C com extensões específicas. Editores de texto mais
leves, como o Atom e o Sublime Text, também são opções viáveis
devido à sua flexibilidade.
Ambientes de linha de comando
Ao optar por ambientes de linha de comando, os programadores
podem escolher entre diferentes compiladores, como o GCC e o
Clang. Estes proporcionam maior controle sobre as opções de
compilação e vinculação, sendo uma abordagem mais manual e
educativa.
 Para compreender melhor esse conceito, vamos expandir nosso
exemplo prático para incluir a entrada do usuário, a manipulação de
variáveis e estruturas de controle básicas. Criaremos um programa
em C que solicita ao usuário um número, realiza uma operação
simples e exibe o resultado, o que permitirá um entendimento mais
profundo das capacidades da linguagem C desde o início.
Figura 2 | Entrada e saída de dados em C. Fonte:
elaborada pelo autor.
Compiladores
Compiladores desempenham um papel importantíssimo na
programação em C. Eles traduzem o código-fonte escrito pelo
programador em linguagem de máquina, tornando-o executável. O
processo de compilação envolve várias etapas, incluindo análise
léxica, análise sintática, otimização de código e geração de código
objeto. No contexto da linguagem C, o compilador traduz o código-
fonte (.c) em um arquivo objeto (.o), que é posteriormente ligado
para formar o executável final. O GCC (GNU Compiler Collection) é
um exemplo comum de compilador utilizado na linguagem C. Além
dele, temos o Makefile, ferramenta auxiliar para automatizar o
processo de compilação e vinculação, especialmente útil em
projetos mais complexos e extensos.
Observe a Figura 3, ela apresenta o compilador GCC em ação. No
exemplo podemos ver que para compilar o arquivo em “C” com o
nome de “media.c”, é necessário executar o comando: (gcc media.c
-o media), que pode ser visualizado na Figura 3.
Figura 3 | Compilando um programa em “C”. Fonte:
elaborada pelo autor.
Após a compilação, vem o próximo passo que é a execução do
programa denominado “media”. Para isso, basta colocar o comando:
(./media), e seu programa vai começar a execução, como pode ser
observado na Figura 4.
Figura 4 | Executando um programa em “C”. Fonte:
elaborada pelo autor.
Interpretadores
Ao contrário dos compiladores, os interpretadores executam o
código fonte linha por linha, sem gerar um arquivo executável
separado. Embora a linguagem C seja geralmente associada a
compiladores, outras linguagens, como Python e Javascript,
frequentemente utilizam interpretadores. Em algumas situações, o
interpretador pode ser mais flexível, permitindo a execução interativa
de código. No entanto, a execução de código interpretado pode ser
mais lenta em comparação ao código compilado. Cada abordagem
tem suas vantagens e desvantagens, e a escolha depende do
contexto e das necessidades específicas do projeto.
Conceitos básicos de linguagem de
programação
Na linguagem C, os conceitos básicos incluem variáveis, as quais
armazenam dados; operadores, que manipulam esses dados;
estruturas de controle (como condicionais e loops), que controlam o
fluxo do programa; funções, as quais organizam o código em blocos
reutilizáveis; e arrays, que armazenam coleções de dados.
Compreendê-los é, portanto, fundamental para construir programas
eficientes e funcionais em C.
Variáveis e tipos de dados
 Em C, começamos com variáveis, que são espaços de
armazenamento para dados. As variáveis têm tipos, como inteiros
(int), números de ponto flutuante (float), caracteres (char), entre
outros.
Figura 5 | Tipos de variáveis. Fonte: elaboradapelo
autor.
Siga em Frente...
Estruturas de controle
As estruturas de controle, como condicionais e loops, são
elementares. O if, else e switch permitem controlar o fluxo do
programa, enquanto for, while e do-while ajudam a repetir ações.
Figura 6 | If/else. Fonte: elaborada pelo autor.
Funções
 As funções são blocos de código que realizam tarefas específicas.
Elas promovem a modularidade e a reutilização do código.
Figura 7 | Funções. Fonte: elaborada pelo autor.
Arrays e estruturas de dados
Arrays armazenam conjuntos de dados do mesmo tipo, enquanto
estruturas de dados mais complexas, como structs, permitem
agrupar diferentes tipos de dados sob um único nome.
Figura 8 | Vetor. Fonte: elaborada pelo autor.
Ao percorrer esta aula, espero que você tenha adquirido uma
compreensão sólida dos elementos essenciais da programação em
linguagem C. Desde o ambiente de programação até a aplicação
prática de conceitos como funções e modularização, cada aspecto
contribui para a formação de um programador habilidoso. Continuar
aplicando esses conhecimentos em projetos reais não apenas
fortalecerá suas habilidades em C, como também preparará o
terreno para aventuras futuras em outras linguagens de
programação.
Lembre-se de que a programação é uma habilidade que se aprimora
com a prática constante e a resolução de desafios reais. Que sua
jornada no mundo da programação em linguagem C seja repleta de
descobertas, conquistas e, acima de tudo, diversão. Boa
codificação!
Vamos Exercitar?
Vamos retomar a situação apresentada no início da aula, onde você
foi incumbido de desenvolver um sistema modular para gerenciar as
vendas de uma loja de calçados. O sistema precisa realizar
operações como cadastrar produtos, realizar vendas, administrar o
estoque e emitir relatórios de vendas. A modularização, neste caso,
é crucial para manter o código organizado e permitir futuras
expansões.
Vamos à resolução?
Módulo de cadastro de produtos
Crie uma função cadastrarProduto que solicite ao usuário
informações como modelo, marca e preço do calçado.
Armazene os dados em uma estrutura ou em variáveis,
simulando o cadastro do produto.
Módulo de vendas
Desenvolva uma função realizarVenda que, ao receber o
modelo do calçado, efetue a venda, atualizando o estoque e
registrando a operação.
Considere manter um histórico de vendas com informações
como data, cliente e valor total.
Módulo estoque
Implemente uma função gerenciarEstoque que permita ao
usuário consultar a quantidade disponível de determinado
modelo de calçado.
Simule a atualização do estoque conforme as vendas são
realizadas.
Módulo de relatórios
Crie uma função emitirRelatorio que apresente informações
relevantes, como o total de vendas em um período específico.
Considere utilizar estruturas de controle para filtrar os dados
necessários.
Na sequência, uma sugestão do desenvolvimento da situação é
apresentada. Considere um modelo de aprendizado replicando-o e
implementando alterações para seu próprio aprendizado.
A ideia do método “main()” é apresentada com a inserção de um
menu de operações, dando a ideia do desenvolvimento de funções
para as ações de cadastro de produtos, venda, consultado de
estoque, emissão de relatório de vendas e uma opção para sair do
programa.
Figura 9 | Venda de calçados. Fonte: elaborada pelo autor.
O desenvolvimento desse sistema para a venda de calçados é
fundamental para garantir a eficiência e manutenção. A estrutura
modular possibilita a construção independente de cada
funcionalidade, simplificando a detecção e correção de possíveis
problemas. Além disso, proporciona escalabilidade ao sistema,
permitindo futuras adições sem comprometer a estrutura existente. A
utilização de funções específicas para cada módulo promove um
código mais organizado e compreensível, evidenciando a
importância da modularização em projetos de software.
Saiba Mais
Para saber mais sobre os conceitos e aplicabilidade dos algoritmos
e suas propriedades, consulte os Capítulos 1 e 2 do livro Elementos
de programação em C, de Pinheiro, disponível no repositório da
Biblioteca virtual.
PINHEIRO, F. de A. C. Capítulos 1 e 2. In: Elementos de
programação em C. Porto Alegre: Bookman, 2012, p. 1-30. 
Referências Bibliográficas
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
Aula 2
INTRODUÇÃO À
LINGUAGEM C
Introdução à Linguagem C
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/10
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/10
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/10
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/10
https://integrada.minhabiblioteca.com.br/reader/books/9788540702035/pageid/10
Olá, estudante! Nesta videoaula vamos dar continuidade à nossa
jornada de aprendizado, desta vez explorando os fundamentos
essenciais da programação através de temas como entradas, saídas
e operadores, linguagem de programação em C e tipos de dados.
Em primeira instância, estudaremos as entradas e saídas em um
programa, como interagir com o usuário e processar informações de
maneira eficaz. Na sequência, mergulharemos no universo da
linguagem de programação C, desbravando suas características e
compreendendo como ela se tornou uma ferramenta poderosa na
construção de softwares robustos.
Nesse trajeto, não poderíamos deixar de abordar os conceitos de
tipos de dados, constantes e variáveis, elementos fundamentais na
construção de algoritmos eficientes. Entender como manipular e
armazenar dados é crucial para o desenvolvimento de soluções
inovadoras.
Participe ativamente desta jornada, explorando cada conceito com
entusiasmo e engajamento. Aprofundar seus conhecimentos nesses
temas é o caminho para se tornar um programador versátil e
capacitado. Contamos com a sua participação para fazer desta aula
uma etapa valiosa em sua jornada de aprendizado. Vamos juntos
desvendar os segredos por trás da programação e aprimorar suas
habilidades no mundo da computação.
Clique aqui para acessar os slides da sua videoaula.
Bons estudos!
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u3a2_algo_log_pro.pdf
Ponto de Partida
Olá, estudante! Seja bem-vindo à esta jornada através de temas
cruciais que ampliarão sua compreensão no vasto universo da
programação. Inicialmente, vamos explorar os fundamentos das
entradas, saídas e operadores, entendendo não apenas o que são,
mas também como esses elementos são essenciais para a
interação e processamento de dados em um programa.
Em seguida, daremos um mergulho na fascinante linguagem de
programação C, desbravando suas características introdutórias. Isso
porque compreender os alicerces dessa linguagem é primordial para
se tornar proficiente no desenvolvimento de softwares robustos e
eficientes.
Nosso percurso incluirá, também, uma imersão nos tipos de dados,
constantes e variáveis, pilares indispensáveis na construção de
algoritmos eficazes. Aprender como manipular e armazenar dados é,
pois, capital para a criação de soluções inovadoras.
A introdução a funções e modularização fará parte desta jornada,
proporcionando uma percepção profunda de como estruturar e
organizar código de maneira produtiva e a habilidade de lidar com
projetos mais complexos.
Para ilustrar a aprendizagem desta aula, imagine que você recebeu
uma demanda para desenvolver um aplicativo que será responsável
pelo autoatendimento a usuários de um banco digital. O sistema
deve oferecer funcionalidades como login, consulta de saldo, entre
outras.
O encerramentodesta aula se dará com a aplicação desses
conceitos em exemplos concretos, demonstrando como as entradas,
saídas, operadores, linguagem de programação C, tipos de dados,
constantes e variáveis se entrelaçam de maneira poderosa. Bons
estudos! 
Vamos Começar!
A compreensão dos conceitos anteriormente mencionados é, então,
indispensável para estabelecer as bases necessárias para a
programação em C.
Nesse contexto, a manipulação de dados é uma peça fundamental.
As entradas representam a maneira como um programa recebe
informações do usuário ou de fontes externas, enquanto as saídas
são os resultados ou respostas gerados pelo programa. Para
conectar esses processos, utilizamos operadores, que são símbolos
ou palavras-chave que executam operações específicas sobre os
dados, permitindo a construção de algoritmos complexos.
Quanto à linguagem de programação C, desenvolvida por Dennis
Ritchie nos anos 70, ela é conhecida por sua eficiência e
versatilidade. Amplamente utilizada em sistemas operacionais,
drivers de hardware e aplicativos de baixo nível, C é apreciada por
sua sintaxe clara e poderosa. Sua abordagem procedural favorece o
controle direto sobre a memória, proporcionando aos programadores
um nível de otimização crucial em projetos de software.
Já os tipos de dados são categorias que especificam quais valores
uma variável pode armazenar. Constantes são valores fixos que não
podem ser alterados durante a execução do programa, enquanto
variáveis são espaços de armazenamento nomeados que podem
conter valores mutáveis ao longo do tempo. A escolha adequada
entre constantes e variáveis é capital para a eficiência e clareza do
código, permitindo ao programador gerenciar dados de forma eficaz
e flexível.
Entradas, saídas de dados em C
Vamos começar entendendo a importância das entradas e saídas
em C. No contexto da programação, a entrada refere-se às
informações que o programa recebe do usuário ou de outras fontes,
enquanto a saída representa os resultados ou mensagens exibidas
para o usuário. Em C, utilizamos a função scanf para receber
entradas e printf para exibir saídas. No entanto, é importante
compreender a necessidade de fornecer formatos corretos ao utilizar
a função scanf. Por exemplo, %d é usado para números inteiros e
%f para números de ponto flutuante. Essa atenção aos detalhes
garante uma interação fluida entre o usuário e o programa.
A prática desses conceitos pode ser observada na Figura 1:
Figura 1 | Printf e scanf. Fonte: elaborada pelo autor.
Neste exemplo, o programa solicita ao usuário que insira um número
inteiro, armazena esse valor na variável número e, em seguida,
exibe a entrada do usuário de volta. Essa interação forma a base
para construir programas mais dinâmicos e úteis.
Operadores aritméticos, relacionais e
lógicos em C
A compreensão abrangente dos operadores é essencial para
manipular dados e realizar operações em C. Os operadores
aritméticos (+, -, *, /, %), assim, são fundamentais para realizar
cálculos matemáticos. Por exemplo, podemos calcular a soma de
dois números como:
Já os operadores relacionais (==, !=, , =) são empregados
para comparar valores e são vitais em estruturas de controle de
fluxo, como o condicional if. Considere o seguinte exemplo:
Figura 2 | Operadores relacionais. Fonte: elaborada pelo
autor.
Neste caso, o programa verifica se a condição (a 0) e (y indica que estamos utilizando funções de entrada
e saída padrão da biblioteca C.
Controle de fluxo
A linguagem de programação C permite o uso de estruturas de
controle de fluxo, como if, else, while, e for. Estas são fundamentais
para a tomada de decisões e repetição de instruções.
Figura 5 | Controle de fluxo em C. Fonte: elaborada pelo
autor.
Para ilustrar a utilização da linguagem C em um contexto prático,
vamos criar um programa simples que verifica a possibilidade de
voto com base na idade do usuário.
Figura 6 | Verificação da possibilidade de voto. Fonte:
elaborada pelo autor.
Neste exemplo, o programa solicita ao usuário que insira sua idade.
Em seguida, utilizando uma estrutura condicional if, verifica se a
idade fornecida é igual ou superior a 16 anos, a idade mínima para
votar no Brasil. Dependendo do resultado, o programa exibe uma
mensagem indicando se o usuário é elegível para votar ou não.
Esse programa simples mostra como a linguagem C pode ser
utilizada para criar algoritmos que tomam decisões com base em
condições específicas. A estrutura de controle de fluxo if é, portanto,
uma ferramenta essencial para criar lógica condicional em seus
programas.
Tipos de dados: constantes e variáveis
Em C, os tipos de dados são essenciais para definir o tipo de
informação que uma variável pode armazenar. Os principais tipos de
dados incluem:
Inteiros (int): usados para armazenar números inteiros,
positivos ou negativos. Por exemplo:
Ponto flutuante (float, double): utilizados para armazenar
números decimais. O float tem uma precisão menor em
comparação ao double. Por exemplo:
Caracteres (char): armazena um único caractere. Por
exemplo:
Lógicos (bool): representa valores booleanos true ou false.
Exemplo:
Para esse tipo de dado, deve ser usada a bibliioteca stdbool.h. Para
isso, basta acrescentar um "include" no início do código
int idade =
25;
float altura
= 1.75;
char letra =
'A';
bool estaChovendo
= 1; // true
Outros tipos de dados: C oferece outros tipos de dados, como
short, long, e unsigned para variações nos tipos primitivos
mencionados.
Constantes
Constantes são valores fixos que não podem ser alterados durante a
execução do programa. Em C, existem dois tipos principais de
constantes:
Constantes literais: são valores específicos escritos
diretamente no código. Por exemplo:
Constantes simbólicas (usando #define): são identificadores
associados a um valor constante. Por exemplo:
Variáveis
Variáveis são espaços de armazenamento com um nome específico
que representam valores modificáveis durante a execução do
int ano =
2022;
#define
PI 3.14
programa. A declaração de uma variável envolve a definição do tipo
de dado que ela pode armazenar. Exemplo:
As variáveis oferecem flexibilidade, permitindo a manipulação e o
armazenamento de dados dinâmicos durantea execução do
programa.
Em resumo, a linguagem C é uma ferramenta poderosa e versátil
para programação de sistemas e aplicações de baixo nível. Sua
sintaxe clara, combinada a um controle preciso sobre a máquina, a
torna uma escolha valiosa para desenvolvedores.
Vamos Exercitar?
Retomando o cenário apresentado no início da aula, você foi
designado para criar um sistema modular para o autoatendimento
no aplicativo de um banco digital. Este sistema deve oferecer
funcionalidades como login na conta do usuário, consulta de saldo e
realização de depósitos bancários. A modularização desempenha
um papel fundamental para garantir a eficiência e manutenção deste
sistema, permitindo a construção independente de cada
funcionalidade e facilitando a detecção e correção de possíveis
problemas.
Módulo de login
Crie uma função realizarLogin() que solicite ao usuário seu
nome de usuário e senha.
Verifique se as credenciais fornecidas estão corretas e conceda
acesso à conta do usuário.
Módulo de consulta de saldo
int quantidade
= 10;
Desenvolva uma função consultarSaldo() que exiba o saldo
disponível na conta do usuário.
Acesse os dados do cliente e apresente o saldo atualizado.
Módulo de depósitos bancários
Implemente uma função realizarDeposito() que permita ao
usuário realizar um depósito em sua conta.
Solicite o valor a ser depositado e atualize o saldo na conta do
usuário.
Na sequência, é apresentada uma sugestão para resolução dessa
atividade no formato de codificação em “C”:
Figura 7 | Resolução da atividade. Fonte: elaborada pelo autor.
Figura 8 | Resolução da atividade - cont. Fonte: elaborada pelo autor.
O desenvolvimento deste sistema para o autoatendimento no
aplicativo de um banco digital é essencial para proporcionar uma
experiência eficiente e conveniente aos clientes. A estrutura modular
permite a adição de novas funcionalidades sem comprometer a
estrutura existente, garantindo a escalabilidade do sistema. A
utilização de funções específicas para cada módulo promove um
código mais organizado e compreensível, destacando a importância
da modularização em projetos de software neste contexto bancário
digital.
Saiba Mais
Para compreender profundamente questões relacionadas a valores
de entrada e saída de informações, consulte o Capítulo 1 do livro
Algoritmos – Teoria e Prática, de Cormen, disponível no repositório
da Biblioteca virtual.
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022, p. 1-3. 
https://integrada.minhabiblioteca.com.br/reader/books/9788595158092/epubcfi/6/16[%3Bvnd.vst.idref%3Dchapter01]!/4
https://integrada.minhabiblioteca.com.br/reader/books/9788595158092/epubcfi/6/16[%3Bvnd.vst.idref%3Dchapter01]!/4
Referências Bibliográficas
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
Aula 3
ESTRUTURAS
CONDICIONAIS EM
LINGUAGEM C
Estruturas condicionais em
linguagem C
Olá, estudante! Nesta videoaula nos concentraremos nas estruturas
condicionais.
Vamos explicar como elas são fundamentais para controlar o fluxo
de execução de um programa. A estrutura condicional simples
permitirá que você tome decisões com base em uma condição
única, enquanto a estrutura condicional composta expandirá suas
habilidades, possibilitando a avaliação de múltiplas condições.
Já com a estrutura condicional encadeada, você aprenderá a lidar
com situações mais complexas, nas quais as decisões podem
depender de uma série de condições inter-relacionadas.
Compreender essa técnica é, pois, crucial para o desenvolvimento
de algoritmos mais sofisticados.
Além disso, destacaremos a execução sequencial, que é a base
para a organização lógica de um programa. Em outras palavras,
entender como as instruções são executadas em ordem sequencial
é vital para garantir o funcionamento adequado do código.
Portanto, participe ativamente desse aprendizado, explorando cada
conceito com entusiasmo e dedicação. Aprofundar suas habilidades
nessas áreas é essencial para se tornar um programador completo e
competente. 
Clique aqui para acessar os slides da sua videoaula.
Bons estudos!
Ponto de Partida
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u3a3_algo_log_pro.pdf
Olá, estudante! Seja bem-vindo à esta aula sobre estruturas
condicionais, fundamentais para o controle lógico de um programa.
Começaremos com a estrutura condicional simples, a qual permite
que você tome decisões com base em uma única condição, fator
primordial para controlar o fluxo do programa de maneira eficiente.
Em seguida, avançaremos para a estrutura condicional composta,
em que a avaliação de múltiplas condições se torna possível,
proporcionando maior flexibilidade na tomada de decisões.
A estrutura condicional encadeada será o nosso próximo destino,
explorando situações mais complexas nas quais as decisões
dependem da inter-relação de diversas condições. O domínio dessa
técnica é, deste modo, essencial para o desenvolvimento de
algoritmos mais sofisticados e robustos.
Não podemos, do mesmo modo, subestimar a importância da
execução sequencial. Esta é a base para a organização lógica de
um programa, garantindo que as instruções sejam executadas em
ordem cronológica, e sua compreensão é vital para o funcionamento
adequado do código.
Como exemplo prático, você deverá desenvolver de um algoritmo
que irá classificar um triângulo em um determinado tipo, sendo:
isósceles, escaleno ou equilátero.
A aplicação prática dessas estruturas em exemplos concretos
encerrará esta aula, demonstrando como elas se entrelaçam
eficazmente para criar programas funcionais e robustos.
Aproveite ao máximo este material e construa uma base sólida para
sua trajetória na área de algoritmos e lógica de programação. Sua
dedicação ao estudo desses conceitos será importante para que
você se torne um programador habilidoso, capaz de enfrentar
desafios mais complexos.
Bom aprendizado! 
Vamos Começar!
A linguagem de programação C, venerável em sua simplicidade e
poder, é um pilar fundamental no mundo da computação. O C tem
um papel determinante na construção de sistemas operacionais,
compiladores e uma miríade de aplicações de software. Nesta aula,
exploraremos as estruturas condicionais em C, um elemento vital
que concede aos desenvolvedores o poder de tomada de decisões
em seus programas. Essas estruturas são a espinha dorsal para a
criação de algoritmos dinâmicos e adaptáveis, tornando-se uma
competência essencial para qualquer programador em C.
O ponto de partida é a estrutura condicional simples, que permite
a execução de um bloco de código com base em uma condição
específica. À medida que avançamos, entraremos na complexidade
da estrutura condicional composta, que expande as
possibilidades, oferecendo caminhos distintos a depender das
condições. Aprofundaremos nossos estudos com a estrutura
condicional encadeada, a qual proporciona a capacidade de avaliar
múltiplas condições sequencialmente. Além disso, discutiremos a
execução sequencial, não estritamente uma estrutura condicional,
mas um aspecto vital para a coerência e lógica do fluxo do programa
em C.
Ao compreender esses conceitos, os programadores se equiparão
com as ferramentas necessárias para criar programas eficientes e
inteligentes, aproveitando ao máximo o potencial da linguagem C.
Estrutura condicional simples
A estrutura condicional simples é a base da tomada de decisões em
C. Ela permite a execução de um bloco de código apenas se uma
condição for verdadeira. Observe o exemplo:
Figura 1 | Condicional simples. Fonte: elaborada pelo
autor.
Aqui, a mensagem "Você é maior de idade" será exibidaapenas se
a condição idade maior ou igual a 18 for verdadeira.
Estrutura condicional composta
A estrutura condicional composta permite a execução de diferentes
blocos de código, dependendo de uma condição. Vejamos a Figura
2:
Figura 2 | Condicional composta. Fonte: elaborada pelo
autor.
Neste exemplo, há dois blocos distintos de código, um para o caso
em que o número é positivo e outro para quando não é positivo.
Siga em Frente...
Estrutura condicional encadeada
A estrutura condicional encadeada permite lidar com várias
condições em sequência. Cada bloco de código depende da
avaliação das condições anteriores. Observe:
Figura 3 | Condicional encadeada. Fonte: elaborada pelo
autor.
Na Figura 3, diferentes mensagens são exibidas com base na faixa
de nota em que o aluno se encontra.
Execução sequencial
A execução sequencial em programação refere-se à ordem em que
as instruções são executadas, seguindo um fluxo linear de cima
para baixo no código. Em C, como em muitas outras linguagens, as
instruções são processadas uma após a outra, na ordem em que
aparecem no código-fonte, sem desvios automáticos, a menos que
uma estrutura de controle, como a condicional, seja utilizada para
modificar esse fluxo. Isso significa que a primeira instrução é
executada, seguida pela segunda, e assim por diante, até o final do
programa. O controle do programa é transferido de uma instrução
para a próxima de maneira linear, sem pulos automáticos.
A execução sequencial é, pois, a essência do funcionamento padrão
de um programa e representa a forma mais básica de controle de
fluxo. Sua importância reside na previsibilidade e na compreensão
clara do fluxo de um programa. Ela oferece uma estrutura lógica e
fácil de seguir, facilitando a leitura, manutenção e depuração do
código. Ao entender como as instruções são executadas
sequencialmente, os programadores podem antecipar o
comportamento de seus programas e identificar com precisão onde
e como as variáveis são modificadas ao longo do tempo.
Em suma, é fundamental aprender a execução sequencial como
base para estruturas de controle mais avançadas, como as
estruturas condicionais e de repetição. Estas introduzem desvios no
fluxo sequencial, permitindo que os programas tomem decisões ou
repitam certas instruções com base em condições específicas.
Assim, a execução sequencial não apenas fornece clareza no fluxo
padrão do programa, mas também serve como alicerce para a
construção de algoritmos mais complexos e dinâmicos.
A título de ilustração, imagine um programa que solicite ao usuário
dois números, some eles e, em seguida, exiba o resultado.
Figura 4 | Estrutura de uma execução sequencial. Fonte:
elaborada pelo autor.
Neste exemplo direto de execução sequencial, cada instrução é
executada em ordem:
1. Solicitamos ao usuário que insira o primeiro número.
2. Em seguida, solicitamos o segundo número.
3. Calculamos a soma dos dois números.
4. Finalmente, exibimos o resultado da soma.
Cada passo, portanto, é concluído antes de passarmos para o
próximo. A execução sequencial, nesse sentido, é determinante para
a compreensão direta do fluxo do programa, tornando-o mais legível
e fácil de entender.
Em síntese, as estruturas condicionais em C representam a espinha
dorsal da capacidade de um programa fazer escolhas inteligentes
em tempo de execução. Seu entendimento claro é crucial e permite
que determinados blocos de código sejam acionados com base em
condições específicas. Expandindo esse conhecimento para
estruturas condicionais compostas, os programadores podem criar
lógicas mais complexas, dando ao programa a capacidade de se
adaptar a uma variedade de circunstâncias.
A estrutura condicional encadeada eleva ainda mais essa
flexibilidade, possibilitando que diferentes cenários se desdobrem
sequencialmente e garantindo que cada condição seja avaliada em
ordem. Esse nível de controle é essencial para a construção de
softwares adaptáveis e capazes de responder de maneira dinâmica
a diferentes entradas e variáveis. Em paralelo, a execução
sequencial, embora não seja uma estrutura condicional direta,
desempenha um papel importante na orquestração lógica de um
programa, estabelecendo a sequência de operações de maneira
clara e compreensível.
Ao dominar esses conceitos, os programadores não apenas criam
programas mais eficientes, mas também desenvolvem a habilidade
de construir soluções complexas de maneira estruturada. A
capacidade de tomar decisões informadas e executar ações
condicionais não só confere robustez ao software, mas também
constitui a base para a criação de algoritmos inteligentes e
adaptáveis. Assim, a compreensão profunda das estruturas
condicionais, aliada à execução sequencial, aprimora a qualidade do
código e capacita os desenvolvedores a enfrentarem desafios de
programação de forma mais eficaz e criativa.
Vamos Exercitar?
Como apresentado no início da aula, você irá desenvolver um
sistema modular para classificar triângulos com base nas medidas
de seus três lados. Este sistema deve oferecer funcionalidades
como verificar se os lados formam um triângulo válido e determinar
o tipo de triângulo (equilátero, isósceles ou escaleno).
Vamos à resolução?
Módulo de verificação de triângulo
Crie uma função verificarTriangulo() que receba como entrada
as medidas dos três lados e verifique se esses valores formam
um triângulo válido.
Utilize a propriedade de que a soma de dois lados de um
triângulo é sempre maior que o terceiro lado.
Módulo de classificação de triângulo
Desenvolva uma função classificarTriangulo() que, ao receber
as medidas dos três lados do triângulo válido, determine se é
equilátero (três lados iguais), isósceles (dois lados iguais) ou
escaleno (três lados diferentes).
Utilize estruturas de controle para comparar os valores dos
lados e determinar o tipo de triângulo.
Na sequência, será apresentadoa uma sugestão para resolução
dessa atividade no formato de codificação em “C”:
Figura 5 | Verificar triângulo. Fonte: elaborada pelo autor.
O desenvolvimento deste sistema para a classificação de triângulos
é essencial para garantir a eficiência e manutenção. A estrutura
modular permite a adição de novas funcionalidades sem
comprometer a estrutura existente, garantindo a escalabilidade do
sistema. A utilização de funções específicas para cada módulo
promove um código mais organizado e compreensível, destacando a
importância da modularização em projetos de software neste
contexto de geometria computacional.
Saiba Mais
Para saber mais sobre as estruturas condicionais e de seleção,
consulte o Capítulo 4 do livro Programação em C++, de Aguilar,
disponível no repositório da Biblioteca virtual.
AGUILAR, L. J. Capítulo 4. In: Programação em C++. São Paulo:
McGraw-Hill, 2008, p. 137-160.
https://integrada.minhabiblioteca.com.br/reader/books/9788580550269/pageid/164
https://integrada.minhabiblioteca.com.br/reader/books/9788580550269/pageid/164
https://integrada.minhabiblioteca.com.br/reader/books/9788580550269/pageid/164
https://integrada.minhabiblioteca.com.br/reader/books/9788580550269/pageid/164
Referências Bibliográficas
AGUILAR, L. J. Programação em C ++. São Paulo: McGraw-Hill,
2008.
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
Aula 4
OPERADORES NA
LINGUAGEM C
Operadores na linguagem C
Olá, estudante! Nesta videoaula exploraremos alguns conceitos
essenciais na linguagem de programação C: as atribuições
múltiplas, os operadores aritméticos, a conversão de tipos em
atribuições e o prático operador de atribuição. Mostraremos como
atribuir valores a várias variáveis de uma vez e dominar operações
matemáticasbásicas. Aprenderemos, também, como converter tipos
de dados para ampliar as opções e tornar as tarefas de atribuição
mais concisas.
Ao entender esses conceitos, você ganhará ferramentas poderosas
para escrever códigos mais eficientes e se tornará um programador
mais versátil. 
Clique aqui para acessar os slides da sua videoaula.
Bons estudos!
Ponto de Partida
Olá, estudante! Seja bem-vindo à esta aula, onde abordaremos três
tópicos essenciais que são os pilares da programação: atribuições
múltiplas, operadores aritméticos e conversão de tipos em
atribuições.
Atribuições múltiplas: este conceito pode parecer simples à
primeira vista, mas é uma ferramenta poderosa nas mãos de
um programador habilidoso. A capacidade de atribuir valores a
múltiplas variáveis simultaneamente pode economizar tempo e
tornar o código mais limpo e legível.
Operadores aritméticos: os operadores aritméticos são as
ferramentas que nos permitem realizar cálculos em nossos
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u3a4_algo_log_pro.pdf
programas. Desde as operações básicas de adição, subtração,
multiplicação e divisão até operações mais complexas como
exponenciação e resto da divisão, os operadores aritméticos
são essenciais para manipular números em nossos programas.
Conversão de tipos em atribuições: às vezes, precisamos
converter um tipo de dado em outro para realizar certas
operações ou atender a requisitos específicos do programa. A
conversão de tipos em atribuições nos permite fazer
exatamente isso. Durante esta aula, exploraremos como
realizar conversões de tipos em atribuições e entenderemos a
importância desse conceito ao lidar com diferentes tipos de
dados em nossos programas.
Para ilustrar o aprendizado desta aula, imagine que você deverá
 desenvolver um sistema modular para verificar se determinado
produto está corretamente com o mesmo peso indicado no rótulo.
Explore, ao máximo, o material desta aula e pratique os conteúdos
abordados. Juntos, construiremos uma base sólida para sua
trajetória na área de algoritmos e lógica de programação.
Ao final desta aula, você estará mais familiarizados com esses
conceitos fundamentais da programação. Estaremos prontos para
dar os primeiros passos em direção a uma compreensão mais
profunda da arte da codificação.
Portanto, vamos mergulhar de cabeça nestes conteúdos! Preparem-
se para desafiar suas mentes, expandir seus horizontes e se
tornarem mestres na arte de criar software. O aprendizado começa
agora!
Bons estudos!
Vamos Começar!
A linguagem de programação C permanece como uma pedra
angular na construção de sistemas e aplicativos, sendo venerada
por sua eficiência, simplicidade e controle direto sobre o hardware.
Desde a sua criação, o C tem se destacado como a base para o
desenvolvimento de inúmeras aplicações críticas, desde sistemas
operacionais até sistemas embarcados. Sua influência é tão
profunda que muitas linguagens modernas ainda têm elementos
inspirados em C. Dentro deste vasto ecossistema, dois conceitos
fundamentais se destacam: as atribuições múltiplas e os operadores
aritméticos, que determinam a manipulação eficaz de dados e
variáveis.
No universo das atribuições múltiplas, C oferece uma ferramenta
poderosa que permite a inicialização simultânea de várias variáveis
com um único valor, simplificando o código e melhorando sua
clareza. Essa capacidade reduz a quantidade de linhas de código
necessárias, e promove uma estrutura mais concisa e
compreensível. Os operadores aritméticos, por sua vez, fornecem os
blocos de construção essenciais para realizar operações
matemáticas, desde cálculos simples até algoritmos mais
complexos. Sua presença é vital para a manipulação eficiente de
dados numéricos, conferindo flexibilidade e precisão ao
desenvolvimento em C.
Entretanto, a riqueza dessa linguagem vai além de conceitos
isolados. A necessidade de conversão de tipos em atribuições
destaca-se como um aspecto crítico, especialmente quando é
necessário transferir dados entre variáveis de diferentes tipos. A
habilidade de realizar essa conversão, seja de forma explícita ou
implícita, é primordial para garantir a coerência dos dados e o bom
funcionamento do código. Complementando esses conceitos, os
operadores de atribuição, incluindo suas formas combinadas,
emergem como recursos versáteis para a manipulação dinâmica de
variáveis, permitindo não apenas a atribuição de valores, como
também a realização de operações complexas de forma eficiente.
Assim, compreender profundamente esses elementos é importante
para desvendar todo o potencial que a linguagem C oferece,
capacitando os programadores a criarem soluções robustas e
efetivas.
Atribuições múltiplas e operadores
aritméticos
Em C, a capacidade de realizar atribuições múltiplas é uma
característica notável que oferece uma maneira eficiente de
inicializar várias variáveis com um único valor. Essa funcionalidade
simplifica o código e melhora significativamente sua legibilidade,
tornando-o mais conciso e compreensível. Por meio dessa
abordagem, é possível reduzir a quantidade de linhas de código
necessárias, resultando em programas mais refinados e fáceis de
manter.
Figura 1 | Atribuição de valores. Fonte: elaborada pelo autor.
Como podemos observar na Figura 1, as variáveis a, b e c são, em
uma única instrução, todas atribuídas ao valor 10, o que economiza
espaço no código-fonte e cria uma relação explícita entre elas,
facilitando a compreensão por outros programadores e pelo próprio
desenvolvedor em futuras revisões.
Os operadores aritméticos em C têm, portanto, um papel crucial na
realização de cálculos matemáticos e na manipulação de dados
numéricos. Além dos operadores básicos, como adição (+),
subtração (-), multiplicação (*) e divisão (/), há também o operador
de módulo (%), que retorna o resto da divisão entre dois números. A
correta compreensão da precedência desses operadores é
fundamental para garantir que as operações sejam executadas na
ordem desejada, permitindo a construção de expressões
matemáticas complexas de forma precisa.
Essa combinação de atribuições múltiplas e operadores aritméticos
não apenas agiliza o desenvolvimento, como também contribui para
a eficiência do código em C. Ao empregar esses recursos, os
programadores podem criar algoritmos mais claros, concisos e
eficientes, promovendo uma abordagem eficaz na manipulação de
variáveis e na execução de operações matemáticas.
Conversão de tipos em atribuições
Em programação, a manipulação de dados muitas vezes envolve a
transferência de valores entre variáveis de diferentes tipos. A
conversão de tipos em atribuições é determinante nesse contexto,
permitindo que programadores ajustem a representação dos dados
conforme necessário, garantam sua coerência e evitem perdas de
informação durante o processo. Em C, essa conversão pode ser
explícita ou implícita, dependendo da situação e da compatibilidade
entre os tipos envolvidos.
Figura 2 | Conversão explícita. Fonte: elaborada
pelo autor.
No exemplo da Figura 2, uma conversão explícita é realizada para
transformar a variável inteiro de tipo int para float. Essa abordagem
é útil quando se deseja preservar a parte decimal de um número
durante a atribuição. A compreensão detalhada das regras de
conversão de tipos em C é, assim, essencial para evitar
comportamentos inesperados e garantir a integridade dos dados ao
longo do programa.
A conversão implícita de tipos também ocorre em situações em que
o compilador automaticamente ajusta os tipos para realizar
operações. Por exemplo:
Figura 3 | Conversão implícita. Fonte: elaborada
pelo autor.
Neste caso, o valor inteiro é implicitamente convertido para um
número de ponto flutuante antes de realizar a adição. O
entendimento dessas nuances é, então, capital para programadores
que buscam escrever um código robusto e preciso em C,
assegurando que as conversões de tipos ocorram de maneira
adequada e sem perda de dados.
Siga em Frente...
Operador de atribuição
O operadorde atribuição (=) é o bloco fundamental na alocação e
modificação de valores em variáveis em C. Simples em sua forma,
esse operador desempenha um papel central na construção de
algoritmos, permitindo que os desenvolvedores atribuam valores a
variáveis de maneira direta. Além disso, em C, existem operadores
de atribuição combinados, como +=, -= e *=, que possibilitam atribuir
valores e realizar operações simultâneas. Esses operadores
combinados contribuem para um código mais conciso e legível,
agregando eficiência e expressividade à linguagem. Considere o
seguinte exemplo:
Figura 4 | Incremento com operador de atribuição.
Fonte: elaborada pelo autor.
Na Figura 4, o operador combinado += incrementa o valor atual da
variável x por 3. Essa abordagem concisa é especialmente útil em
loops e em situações em que a atualização de variáveis é uma parte
recorrente do algoritmo.
Em conjunto, as atribuições múltiplas, operadores aritméticos e
operadores de atribuição são instrumentos elementares no arsenal
do programador C. Esses conceitos trabalham lado a lado para
simplificar a inicialização e manipulação de variáveis, bem como
para realizar cálculos matemáticos de maneira eficiente.
Conclusão
Em síntese, as atribuições múltiplas, os operadores aritméticos e a
conversão de tipos em atribuições formam a tríade essencial para
programadores que buscam explorar todo o potencial da linguagem
C. A capacidade de realizar atribuições múltiplas, assim, oferece
uma maneira eficiente de inicializar variáveis, promovendo a
concisão e a clareza do código. Paralelamente, os operadores
aritméticos são ferramentas que possibilitam cálculos matemáticos
precisos, fornecendo os alicerces necessários para a manipulação
efetiva de dados numéricos.
A conversão de tipos em atribuições destaca-se como um ponto
crítico, garantindo a integridade dos dados ao transferir valores entre
variáveis de diferentes tipos. Seja por meio de conversões explícitas
ou implícitas, esse processo é crucial para preservar a precisão dos
dados e manter a coerência em todo o programa.
Por fim, o operador de atribuição, junto com seus equivalentes
combinados, surge como o elemento unificador, proporcionando a
alocação e modificação de valores em variáveis. Esses operadores
não são apenas instrumentos para atribuição de valores, mas
também facilitam a execução de operações simultâneas,
contribuindo para um código mais expressivo e poderoso.
Ao compreender profundamente esses três pilares, os
programadores C fortalecem sua habilidade na linguagem e se
equipam para enfrentar desafios complexos de desenvolvimento.
Esses conceitos, quando dominados em conjunto, formam a base
sólida para a construção de algoritmos robustos e de fácil
manutenção, permitindo que os desenvolvedores alcancem todo o
potencial da linguagem C.
Vamos Exercitar?
No início da aula você recebeu a missão de desenvolver um sistema
modular que será responsável por verificar se os produtos estão
com o mesmo peso de indicação no rótulo. Este sistema será
utilizado em uma linha de produção de uma fábrica de alimentos,
onde é essencial garantir a precisão no peso dos produtos antes de
serem embalados e enviados aos clientes.
Vamos à resolução?
Módulo de verificação de peso
Crie uma função verificarPeso() que receba como entrada o
peso indicado no rótulo e o peso real do produto.
Utilize operadores relacionais para comparar os dois pesos e
determinar se o produto está dentro das especificações.
Módulo de classificação de produto
Desenvolva uma função classificarProduto() que, ao receber
o resultado da verificação de peso, determine se o produto está
"Dentro do Peso", "Abaixo do Peso" ou "Acima do Peso".
Utilize estruturas de controle para definir as condições de
classificação com base nos resultados da verificação.
Na sequência, é apresentada uma sugestão do desenvolvimento da
atividade:
Figura 5 | Verificação de peso de produtos. Fonte: elaborada pelo autor.
O desenvolvimento deste sistema para a verificação de peso de
produtos é fundamental para garantir a qualidade e conformidade
dos produtos fabricados. A utilização de operadores relacionais e
estruturas de controle promove um código mais claro e
compreensível, destacando a importância da modularização em
projetos de software neste contexto de produção industrial.
Saiba Mais
Para saber mais sobre conteúdos específicos abordados nesta aula
como: operadores aritméticos, operadores relacionais e atribuição
de valores, consulte o Capítulo 2 do livro Algoritmos e Programação
em Linguagem C – 1ª edição, de Soffner, disponível no repositório
da Biblioteca virtual.
SOFFNER, Renato. K. Capítulo 2. In: Algoritmos e Programação
em Linguagem C. São Paulo: Saraiva, 2013, p. 34-44.
Referências Bibliográficas
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
SOFFNER, R. K. Algoritmos e Programação em Linguagem C, 1.
ed. São Paulo: Editora Saraiva, 2013.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
Encerramento da Unidade
CONCEITOS DE
PROGRAMAÇÃO
https://integrada.minhabiblioteca.com.br/reader/books/9788502207530/pageid/31
https://integrada.minhabiblioteca.com.br/reader/books/9788502207530/pageid/31
https://integrada.minhabiblioteca.com.br/reader/books/9788502207530/pageid/31
https://integrada.minhabiblioteca.com.br/reader/books/9788502207530/pageid/31
https://integrada.minhabiblioteca.com.br/reader/books/9788502207530/pageid/31
Videoaula de Encerramento
Olá, estudante! Seja bem-vindo à nossa última videoaula da
Unidade, na qual abordaremos os conceitos de programação.
Vamos nos debruçar nas condicionais e nas estruturas de um
programa na linguagem C. Aproveite e embarque em mais este
aprendizado, consistente no cenário de algoritmos. 
Clique aqui para acessar os slides da sua videoaula.
Bons aprendizado!
Ponto de Chegada
Olá, estudante! Para desenvolver a competência desta Unidade, a
saber, criar algoritmos contendo estruturas de seleção, operadores e
conversões de tipos de dados, nos dedicamos ao estudo de
conceitos fundamentais para a área. Foram eles:
1. Ambiente de programação: conhecemos esses espaços
essenciais para criar e depurar código, proporcionando uma
experiência eficiente de desenvolvimento.
2. Compiladores e interpretadores: compreendemos a diferença
entre compiladores e interpretadores, ferramentas cruciais que
transformam nossos códigos em programas executáveis.
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u3enc_algo_log_pro.pdf
3. Entradas, saídas e operadores: exploramos como interagir
com programas por meio de entradas e saídas, e dominamos o
uso de operadores para manipular dados.
4. Introdução à linguagem C: iniciamos nossa jornada na
linguagem C, investigando sua sintaxe e estrutura, preparando-
nos para expressar lógica e soluções através do código.
5. Estrutura condicional simples e composta: aprendemos a
importância das estruturas condicionais, permitindo que nossos
programas tomem decisões com base em condições
específicas.
Esses conhecimentos adquiridos ao longo das aulas são um
trampolim para desafios mais avançados. Agora, após esta
importante jornada, você está equipado para explorar temas mais
complexos e aplicar suas habilidades em projetos práticos.
Continue, pratique, e verá seu domínio da programação crescer. 
É Hora de Praticar!
Agora, convido você estudante, a trabalhar com o conteúdo
abordado nesta unidade de ensino. Para tanto, vamos abordar um
estudo de caso sobre Atendimento em laboratório de revelação
de fotos com o cenário descrito a seguir.
Cliente: João da Silva
Data do atendimento: 15/09/2022
Abertura da ordem de serviço (OS):
Código daOS: 00123
Descrição do serviço: revelação de 50 fotos no tamanho
10x15cm
Produtos: papel fotográfico, revelador, fixador
Valor: R$ 75,00
Forma de pagamento: cartão de crédito
Prazo de entrega: 3 dias úteis
Detalhamento do atendimento
João da Silva compareceu ao laboratório de revelação de fotos com
o objetivo de revelar 50 fotos tiradas em sua viagem de férias. Foi
aberta uma ordem de serviço (OS) com o código 00123 para
registrar o pedido. O serviço solicitado consistia na revelação das
fotos no tamanho 10x15cm, utilizando papel fotográfico de alta
qualidade e produtos químicos específicos, como revelador e
fixador.
O valor total do serviço foi calculado em R$ 75,00, considerando o
custo dos materiais utilizados e a mão de obra. O cliente optou por
realizar o pagamento por meio de cartão de crédito, sendo realizado
o devido registro da transação.
Foi estabelecido um prazo de entrega de 3 dias úteis para que as
fotos fossem reveladas e estivessem prontas para retirada. O cliente
foi informado sobre o prazo e concordou com as condições
estabelecidas.
Reflita
A seguir, apresentamos duas questões de reflexão para aprofundar
nossa compreensão sobre esses temas:
1. Ambiente de programação
Diante da diversidade de ambientes de programação
disponíveis, considere o impacto direto que a escolha de um
deles pode ter em sua eficiência e produtividade como
desenvolvedor. 
Pense em como a familiaridade com uma determinada IDE
(Integrated Development Environment) pode influenciar seu
fluxo de trabalho e na importância de explorar diferentes
ambientes para encontrar aquele que melhor se alinha ao seu
estilo e necessidades. 
Como a escolha do ambiente pode afetar sua jornada de
aprendizado em programação C?
2. Operadores na linguagem C
Os operadores na linguagem C são ferramentas poderosas
para manipular dados e realizar operações diversas. Ao pensar
nesses operadores, reflita sobre a importância de compreender
não apenas a funcionalidade básica deles, mas também como
combiná-los estrategicamente para alcançar soluções mais
complexas. 
Como a habilidade de dominar os operadores pode influenciar
sua capacidade de desenvolver algoritmos eficientes? 
Considere a importância de explorar essas nuances para
fortalecer suas habilidades como programador em C.
Ao compreender o ambiente de programação e explorar os
operadores na linguagem C, você construirá seu caminho para ser
um ótimo programador. A escolha consciente do ambiente e a
maestria nos operadores ampliam suas possibilidades, preparando-
o para desafios mais complexos e uma trajetória de aprendizado
consistente. Continue explorando e praticando para alcançar novos
patamares em sua jornada na programação C.
Dê o Play!
Clique aqui para acessar os slides do Dê o play!
Resolução do estudo de caso
Atendimento em laboratório de revelação de
fotos
Passo 1: definir o problema a ser resolvido e os objetivos do
algoritmo.
https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u3play_algo_log_pro.pdf
Passo 2: coletar os dados necessários para a resolução do
estudo de caso.
Passo 3: analisar e processar os dados obtidos para identificar
padrões ou relações relevantes.
Passo 4: escolher o algoritmo mais adequado para a resolução
do problema, levando em consideração a complexidade e os
tipos de dados.
Passo 5: implementar o algoritmo escolhido e realizar testes
para verificar sua eficácia.
Passo 6: avaliar os resultados obtidos e realizar ajustes no
algoritmo, se necessário.
Passo 7: documentar o algoritmo criado, incluindo detalhes
sobre sua implementação, funcionamento e resultados.
Passo 8: apresentar a solução do estudo de caso, destacando
os benefícios e possíveis aplicações do algoritmo desenvolvido.
Após analisar o estudo de caso, é possível concluir que a empresa
enfrentou desafios significativos, mas conseguiu superá-los com
sucesso. As estratégias implementadas demonstraram ser eficazes
na resolução dos problemas e na melhoria dos resultados. Além
disso, o estudo ressalta a importância de adaptar-se às mudanças
do mercado e de buscar constantemente inovação. 
Dê o play!
Assimile
Nesta linha do tempo, apresentamos, resumidamente, os principais
conceitos relacionados às estruturas de decisão, à linguagem de
programação C e aos operadores utilizados no desenvolvimento de
algoritmos.
Figura 1 | Conceitos de programação. Fonte: elaborada pelo autor.
Referências
CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de
Janeiro: LTC, 2022.
MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de
algoritmos. São Paulo: Érica, 2000.
MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.
PINHEIRO, F. de A. C. Elementos de programação em C. Porto
Alegre: Bookman, 2012.
SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para
computação. 2. ed. São Paulo: Cengage Learning, 2017.
ZIVIANI, N. Projeto de algoritmos com implementações em
Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.
WAZLAWICK, R. S. Introdução a algoritmos e programação com
Python: uma abordagem dirigida por testes. Rio de Janeiro: LTC,
2018.

Mais conteúdos dessa disciplina