Exercício 1
Comentário: (digite uma frase para facilitar a busca)
Já vimos que uma variável é composta por um nome, um tipo e um valor. Até o momento usamos apenas variáveis e expressões do tipo número. Mas linguagens de programação normalmente admitem outros tipos de variáveis e expressões.
Uma variável do tipo cadeia de caracteres é capaz de armazenar, como o nome diz, cadeias de caracteres.
Cadeias de caracteres são representadas em Javascript por uma sequência de caracteres entre aspas, como por exemplo "Esta é uma cadeia de caracteres".
O operador de atribuição '=' funciona da mesma forma que para variáveis do tipo número. A variável do lado esquerdo do operador armazena a cadeia de caracteres do lado direito do operador, como mostrado no exemplo abaixo:
var prenome, sobrenome, mensagem; prenome = "Ricardo"; sobrenome = "Anido"; mensagem = "Por favor desligue o computador";
O operador '+' para o tipo cadeia de caracteres efetua a concatenação de duas cadeias (concatenar significa colocar uma cadeia de caracteres em seguida da outra). Veja o exemplo:
var prenome, sobrenome, nome; prenome = "Ricardo"; sobrenome = "Anido"; nome = prenome + " " + sobrenome;
Ao final desse trecho a variável nome tem o valor "Ricardo Anido" (note o espaço entre nome e sobrenome).
Podemos ainda atribuir uma cadeia vazia a uma variável. A cadeia vazia é uma cadeia com zero caracteres e é designada por duas aspas consecutivas.
var nome; nome = "";
Para escrever cadeias de caracteres utilizamos o especificador de formato "%s" na cadeia formatadora do comando printf, como no exemplo abaixo.
var nome1, nome2; nome1 = "Ricardo"; nome2 = "Cristina" printf("Bom dia, %s e %s!", nome1, nome2);
Podemos ler caracteres cadeias de caracteres com o comando scanf, utilizando o especificador de formato "%s" na cadeia formatadora.
Suponha que a entrada contenha
Ricardo Anido 10 AEntão após o trecho abaixo ser executado
var prenome, sobrenome, nota, turma; scanf("%s%s%d%s", "prenome", "sobrenome", "nota", "turma");
a variável prenome contém a cadeia de caracteres Ricardo, a variável sobrenome contém a cadeia de caracteres Anido, a variável nota contém o inteiro 10, e a variável turma contém a cadeia de caracteres A.
Note que o comando scanf não pode ser utilizado para ler cadeias de caracteres que contenham espaço em branco! O especificador %s lê caracteres da entrada até encontrar um delimitador que pode ser um espaço em branco ou um final de linha.
var nome; scanf("%s", "nome"); if (nome === "Ricardo") printf("Bom dia\n");
(ou seja, o nome da variável, seguido de '.' seguido da palavra length, que em inglês significa comprimento).
Veja um exemplo
var a; a = "Cadeia"; printf("%d\n", a.length);
Nesse exemplo o valor 6 é impresso na saída, pois esse é o número de caracteres da cadeia armazenada na variável a.
Escreva programa que implemente uma calculadora simples para realizar as operações de adição, subtração, multiplicação e divisão entre dois operandos.
A entrada consiste de apenas uma linha, contendo um número X com duas casas decimais, seguido de um espaço em branco, seguido de um caractere C, seguido de um espaço em branco, seguido de um número Y com duas casas decimais. O caractere C indica a operação a ser realizada entre os operandos X e Y, e pode ser '+', '-', '*' ou '/', indicando respectivamente as operações de adição, subtração, multiplicação e divisão.
Seu programa deve imprimir uma única linha contendo o resultado da operação indicada na entrada, com duas casas decimais de precisão.
Entrada
2.00 + 3.50 |
Saída
5.50 |
Entrada
100.00 - 99.99 |
Saída
0.01 |
Entrada
10.00 / 3.00 |
Saída
3.33 |
Aldo e Beatriz gostam de jogos de palavras. Um dos jogos que eles acham mais divertido é encontrar palavras com muitas letras. Por exemplo, eles definem que o tema do desafio é nome de cidades, e os dois tentam encontrar a maior palavra que seja nome de uma cidade. Vence o desafio quem encontrar maior palavra, ou seja a palavra com o maior número de letras.
Eles pediram que você escreva um programa que, dadas as duas palavras que Aldo e Beatriz encontraram, determine qual dos dois é o vencedor.
A entrada consiste de apenas uma linha, contendo duas palavras A e B, respectivamente as palavras encontradas por Aldo e por Bia. Uma palavra é uma sequência de letras e do símbolo '-'.
Seu programa deve imprimir uma única linha contendo um único caractere, que deve ser A se a maior palavra é a de Aldo, ou B se a maior palavra é a de Beatriz, ou o caractere * (asterisco) se as duas palavras têm o mesmo número de letras.
Entrada
Pindamonhangaba SaoJoaoDaBoaVista |
Saída
B |
Entrada
TrepadeiraElefante CrisantemoVermelho |
Saída
* |
Entrada
Jabuticaba Uva |
Saída
A |
Nesta seção você encontra exemplos de soluções para os exercícios. Mas antes de ver a solução para um exercício tente resolvê-lo, criando a sua própria solução.
Solução do Exercício 1// Solução para o exercício 1 da Aula 8 // Mini-calculadora var x,y, // os operandos op, // o operador res; // o resultado // lê a entrada scanf("%f%s%f", "x", "op", "y"); // calcula o resultado if (op === "+") res = x+y; else if (op === "-") res = x-y; else if (op === "*") res = x*y; else res = x/y; // imprime o resultado printf("%.2f\n",res);
Solução do Exercício 2
// Solução para o exercício 2 da Aula 8 // Desafio de maior palavra var A,B, // as cadeias de Aldo e Beatriz res; // armazena o resultado // lê a entrada scanf("%s%s", "A", "B"); // calcula o resultado if (A.length > B.length) res = "A"; else if (A.length < B.length) res = "B"; else res = "*"; // imprime o resultado printf("%s\n",res);