Preparatório para a OBI - Fase 1 - Aula 2/3

Preparatório para a OBI - Fase 1 - Aula 2/3

Introdução

Visão geral da seção: Nesta seção, o palestrante introduz a segunda aula de preparação para a Olimpíada Brasileira de Informática (OBI) e recapitula informações importantes da primeira aula.

Recapitulação das informações da primeira aula

  • A primeira fase da OBI programação será realizada de 1º a 3 de junho.
  • Existem duas maneiras principais de se preparar: os cursos do NEPS no site do Next e o roteiro de estudos preparado pelo palestrante.
  • Para passar na primeira fase, é necessário saber programação básica, como introdução e estrutura de dados básicos.

Como se preparar para a OBI

Visão geral da seção: Nesta seção, o palestrante discute as duas principais maneiras pelas quais os participantes podem se preparar para a OBI.

Usando os cursos do NEPS no site do Next

  • Os cursos Expert em Algoritmos são recomendados para aqueles que desejam ir bem na OBI.
  • Os cursos devem ser seguidos em ordem.

Usando o roteiro de estudos

  • O roteiro de estudos foi criado pelo palestrante e está disponível no site Norte.
  • Ele fornece uma ordem detalhada das coisas que precisam ser estudadas e quais sites usar para estudá-las.
  • Inclui informações sobre como fazer problemas antigos e seguir com as lições em ordem.

Conteúdo necessário para cada nível da OBI

Visão geral da seção: Nesta seção, o palestrante discute o conteúdo necessário para cada nível da OBI.

Nível Júnior

  • A primeira fase é principalmente sobre programação básica.
  • Os conteúdos necessários são introdução e estrutura de dados básicos.

Nível 1

  • A primeira fase é principalmente sobre programação básica.
  • Os conteúdos necessários são introdução e estrutura de dados básicos.

Nível 2

  • A primeira fase é principalmente sobre programação básica.
  • Os conteúdos necessários são introdução e estrutura de dados básicos.

Linguagens de programação na OBI

Visão geral da seção: Nesta seção, o palestrante discute as linguagens de programação que podem ser usadas na OBI.

  • Na primeira fase, você pode usar qualquer linguagem que saiba, mesmo que não seja Sermais.
  • É possível fazer a primeira fase em uma linguagem diferente e depois transferir para Sermais para as fases posteriores.
  • Para a segunda e terceira fases, é necessário saber Sermais.

Conclusão

Visão geral da seção: Nesta seção, o palestrante conclui a aula reiterando os pontos principais discutidos anteriormente.

Introdução

Visão geral da seção: Nesta seção, o palestrante apresenta a segunda fase do exame da OAB e explica que há tempo suficiente para aprender uma nova linguagem antes da próxima fase. Ele também introduz cinco problemas que podem ser úteis para passar na primeira fase.

Problema 1: Cortando notas de dinheiro

Visão geral da seção: Nesta seção, o palestrante apresenta um problema sobre cortar notas de dinheiro em dois pedaços e determinar o valor de cada pedaço.

  • Se um dos pedaços possui estritamente mais da metade da área da nota original, então ele vale R$100 e o outro não vale nada.
  • Se os dois possuem exatamente metade da área original, nenhum dos dois tem valor.
  • O corte deve começar na base a uma distância de B aqui e terminar no topo a uma distância 3 cm a partir do lado esquerdo.
  • Os formatos geométricos resultantes são trapézios.

Problema 2: Separando um retângulo em duas partes

Visão geral da seção: Nesta seção, o palestrante apresenta um problema sobre separar um retângulo em duas partes com diferentes dimensões.

  • O retângulo é originalmente 160cm por 70cm.
  • O corte começa numa distância de B aqui e termina numa distância de t.
  • Os formatos geométricos resultantes são trapézios.

Problema 3: Encontrando a altura máxima de um triângulo

Visão geral da seção: Nesta seção, o palestrante apresenta um problema sobre encontrar a altura máxima de um triângulo inscrito em uma circunferência.

  • O triângulo é isósceles e tem dois lados iguais a 10.
  • A circunferência tem raio 6.
  • A altura máxima do triângulo é igual a 8.

Problema 4: Encontrando o menor valor possível

Visão geral da seção: Nesta seção, o palestrante apresenta um problema sobre encontrar o menor valor possível para uma expressão matemática.

  • A expressão é (x+1)(y+1)(z+1) = 16.
  • Os valores de x, y e z são inteiros positivos.
  • O menor valor possível para a expressão é 16.

Problema 5: Encontrando as raízes de uma equação quadrática

Visão geral da seção: Nesta seção, o palestrante apresenta um problema sobre encontrar as raízes de uma equação quadrática.

  • A equação é x^2 - 7x +12 =0.
  • As raízes da equação são x=4 e x=3.

Cálculo da Área de um Trapézio

Visão Geral da Seção: Nesta seção, o palestrante explica como calcular a área de um trapézio e como determinar qual dos dois lados é maior.

Fórmula para Calcular a Área do Trapézio

  • A área do trapézio depende apenas do tamanho das bases e da altura.
  • A fórmula para calcular a área de um trapézio com uma altura h, uma base B e outra base T é: área = (B + T)/2 x h ou altura.

Cálculo da Área dos Dois Lados

  • Para determinar qual dos dois lados é maior, é necessário calcular a área de cada lado usando a fórmula do trapézio.
  • O lado esquerdo tem uma base B e outra base T. A área pode ser calculada usando a fórmula vista anteriormente.
  • O lado direito tem uma base menor de 160 - B e outra base maior de 160 - T. A área também pode ser calculada usando a mesma fórmula.

Determinando Qual Lado É Maior

  • Para determinar qual dos dois lados é maior, basta comparar as áreas calculadas anteriormente.
  • Se o lado esquerdo for maior que o direito, imprima "1". Caso contrário, imprima "2".

Simplificando o Código

Visão geral da seção: Nesta seção, o palestrante discute como simplificar o código para um problema específico.

Simplificação do código

  • O código é testar se área aí é maior do que a área D.
  • É possível simplificar a conta removendo alguns termos desnecessários.
  • A altura dos dois trapézios são iguais, então só precisamos verificar qual das duas bases é maior.
  • É comum ter casos de teste menores para ajudar a resolver problemas mais complexos.

Problema dos Emoticons

Visão geral da seção: Nesta seção, o palestrante apresenta um problema relacionado à análise de emoticons em uma mensagem.

Definindo o sentimento expresso na mensagem

  • O sentimento expresso em uma mensagem pode ser definido pela quantidade de carinhas felizes e tristes presentes nela.
  • Se a quantidade de carinhas felizes for maior ou igual à quantidade de carinhas tristes, a mensagem é considerada feliz. Se a quantidade de carinhas tristes for maior, ela é considerada chateada. Caso contrário, ela é neutra.
  • A entrada consiste em uma única linha contendo uma mensagem como cadeia de caracteres. A saída deve indicar se a mensagem é neutra, feliz ou chateada.

Entendendo mensagens com emojis

Visão geral da seção: Nesta seção, o palestrante explica como entender mensagens que contêm emojis e como determinar se a mensagem é positiva, negativa ou neutra.

Como entender mensagens com emojis

  • As mensagens podem ter espaços no meio, então não é possível lê-las como uma string única.
  • O número de carinhas felizes e tristes em uma mensagem determina se ela é positiva, negativa ou neutra.
  • As palavras na mensagem não importam tanto quanto as carinhas felizes e tristes.

Resolvendo o problema

  • Para resolver o problema de ler a sequência de caracteres completa, use o comando Get Line seguido pela variável que você usará para ler a linha inteira.
  • É importante lembrar desses comandos menos comuns para quando eles aparecerem em um teste.

Dicas finais

  • Não escreva todo o cabeçalho desde o início. Copie e cole códigos anteriores e edite-os conforme necessário.
  • Pratique esses conceitos diariamente para memorizá-los antes do dia do teste.

Contando Carinhas Felizes e Tristes

Visão geral da seção: Nesta seção, o palestrante explica como contar quantas carinhas felizes e tristes existem em uma string.

Contagem de Carinhas Felizes e Tristes

  • Para contar as carinhas felizes e tristes em uma string, é necessário manter duas variáveis: "feliz" e "triste".
  • Inicialmente, ambas as variáveis são definidas como zero.
  • Em seguida, percorre-se a string verificando se há três posições consecutivas com uma carinha feliz ou triste.
  • Se houver uma carinha feliz nas três posições consecutivas (por exemplo: :) : -)), adiciona-se 1 à variável "feliz". Se houver uma carinha triste nas três posições consecutivas (por exemplo: :( : -( ), adiciona-se 1 à variável "triste".
  • Depois de percorrer toda a string, verifica-se qual das duas variáveis é maior. Se a variável "feliz" for maior que a variável "triste", então a resposta é "divertido". Se a variável "triste" for maior que a variável "feliz", então a resposta é "chateado". Se ambas as variáveis forem iguais, então a resposta é "neutro".

Cuidado com o Ponto Size Menos Dois

Visão Geral da Seção: Nesta seção, é explicado que o ponto size menos dois não deve ser menor que 10 pontos, pois isso pode causar problemas. É importante tomar cuidado com esse ponto para evitar problemas.

  • O ponto size menos dois não deve ser menor que 10 pontos.
  • Esse número não fica negativo por padrão porque ele é um designer.
  • É importante tomar cuidado com esse ponto para evitar problemas.

Recomendações de Estudo

Visão Geral da Seção: Nesta seção, são apresentadas duas opções de estudo recomendadas: a trilha de programação do Next e o roteiro de estudos do site do Nike. Ambas as opções são indicadas para quem está começando agora e deseja aprender informática.

Trilha de Programação do Next

  • A trilha de programação do Next pode ser encontrada no site do Maps.
  • A trilha recomendada é a "Expert Algoritmos".
  • É possível seguir essa trilha para aprender programação.

Roteiro de Estudos do Site do Nike

  • O roteiro de estudos pode ser encontrado na área de informática do site do Nike.
  • O roteiro foi criado pelo próprio palestrante e é bem completo.
  • Começa desde programação básica até cursos mais avançados.
  • Fazer vários problemas por dia é suficiente para passar na Ubi em duas semanas.

Problema das Camisetas da Olimpíada

Visão Geral da Seção: Nesta seção, é apresentado o problema das camisetas da Olimpíada Municipal de programação. A empresa confeccionou camisetas para os melhores colocados, mas pode ter se enganado na quantidade de camisetas para cada tamanho. É necessário determinar se todos os premiados receberam camisetas do tamanho escolhido.

  • A Olimpíada Municipal de programação distribuiu camisetas para os melhores colocados.
  • Os premiados informaram um tamanho preferido entre pequeno e médio.
  • Foram produzidas camisetas suficientes para todos os premiados, mas não necessariamente do tamanho preferido.
  • É necessário determinar se todos os premiados receberam camisetas do tamanho escolhido.

Declarando constantes e lendo valores

Visão geral da seção: Nesta seção, o palestrante explica como declarar constantes e ler valores em um código.

Declarando a constante MaxN

  • Declara-se a constante MaxN para evitar ter que escrever várias vezes o valor de n.
  • Em vez de escrever tamanho mil, declara-se MaxN e atribui-se o valor de n a ela.

Contador para quantidade de camisetas

  • Cria-se um contador para a quantidade de camisetas pequenas (P) e médias (M).
  • Declara-se P e M como zero.
  • Se uma pessoa prefere uma camisa pequena, incrementa-se P em 1. Se prefere uma camisa média, incrementa-se M em 1.

Lendo quantidades produzidas

  • Lê-se as quantidades produzidas das camisas pequenas (p) e médias (m).
  • Verifica-se se p é maior ou igual à quantidade de pessoas que querem camisas pequenas (P), e se m é maior ou igual à quantidade de pessoas que querem camisas médias (M).
  • Se ambas as condições forem verdadeiras, imprime "OK". Caso contrário, imprime "ERRO".

Praticando problemas da OBI

Visão geral da seção: Nesta seção, o palestrante sugere praticar problemas antigos da Olimpíada Brasileira de Informática (OBI) para aprimorar as habilidades de programação.

Praticando para a terceira fase da OBI

  • Para praticar para a terceira fase da OBI, é recomendado acessar os problemas antigos no site da OBI.
  • É possível pesquisar por problemas específicos, como os da primeira fase.

A Sequência Secreta

Visão geral da seção: Nesta seção, o palestrante fala sobre um problema chamado "Sequência Secreta" e explica como resolvê-lo.

O Problema da Sequência Secreta

  • O problema é que há uma sequência de números desenhados no chão em frente à Classe Imperial.
  • A sequência começa e termina com o número 1 e apenas os números 1 e 2 aparecem nela.
  • Existem várias teorias sobre o significado da sequência, mas ninguém sabe ao certo qual é a resposta correta.
  • O objetivo do problema é encontrar a maior quantidade possível de valores que podem ser circulados na sequência sem que haja dois números iguais consecutivos marcados.

Algoritmo Guloso

  • Uma solução para o problema é usar um algoritmo guloso, que sempre toma a decisão mais vantajosa no momento.
  • O algoritmo guloso para este problema envolve marcar todos os números "1" na sequência e, em seguida, marcar todos os "2" que não estão adjacentes a outro "2".
  • Esse algoritmo pode não fornecer a solução ótima em todos os casos, mas funciona bem para muitas instâncias do problema.

Algoritmo Guloso

Visão geral da seção: Nesta seção, o palestrante explica como funciona o algoritmo guloso e como ele pode ser aplicado para resolver problemas de sequência numérica.

Como funciona o algoritmo guloso

  • O objetivo é marcar todos os números diferentes em uma sequência.
  • Quando há dois números consecutivos iguais, apenas um deles pode ser marcado.
  • Comece marcando o primeiro número da sequência.
  • Em seguida, marque qualquer número subsequente que seja diferente do último número marcado.
  • A resposta final será a quantidade total de números marcados.

Lidando com números consecutivos iguais

  • Quando há uma sequência de dois ou mais números consecutivos iguais, apenas um deles pode ser marcado.
  • Apague os outros números repetidos na sequência para obter uma lista de números únicos que podem ser marcados.

Implementação do algoritmo guloso em código

  • Leia a sequência numérica e comece marcando o primeiro número.
  • Verifique cada número subsequente e marque-o se for diferente do último número marcado.
  • Aumente a resposta em 1 sempre que um novo número for marcado.
  • Imprima a resposta final no final da iteração.

Testando o algoritmo guloso

O palestrante testa o algoritmo com uma sequência numérica específica e mostra como ele funciona na prática.

Copiando e Colando

Visão geral da seção: Nesta seção, o apresentador mostra como copiar e colar um código que funcionou em outro caso.

Copiando e Colando

  • O apresentador demonstra como copiar um código que funcionou em outro caso.
  • Ele encerra a sessão dizendo que este foi o último problema da live de hoje e convida os espectadores a entrar no Discord do NEPS para tirar dúvidas. Ele fornece um link para acessar o Discord.
  • Os espectadores podem entrar no Discord do NEPS para fazer perguntas ou obter ajuda adicional.

Próxima Aula

Visão geral da seção: Nesta seção, o apresentador anuncia a data da próxima aula.

Próxima Aula

  • O apresentador anuncia que a próxima aula será no dia 27.
Video description

Esse ano vamos fazer todo mundo passar na primeira fase da OBI! As 3 primeiras aulas desse curso preparatório tem objetivo de te preparar para passar na primeira fase da OBI 2023 nos níveis PJ, P1, P2 e PU. Arthur Lobo, primeiro lugar geral da P2 ano passado, será o professor. É necessário ter conhecimento básico de programação para acompanhar as aulas. Caso você queria começar a aprender programação, nós recomendamos os seguintes recursos: Neps Academy https://neps.academy/br Noic https://noic.com.br/materiais-informatica/roteiro-de-estudos/

Preparatório para a OBI - Fase 1 - Aula 2/3 | YouTube Video Summary | Video Highlight