* Exercicio: 4.09
2 participantes
- gustavocruz
- Mensagens : 256
Data de inscrição : 12/05/2019
Idade : 16
* Exercicio: 4.09
Sáb Ago 20, 2022 9:00 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.09
* Tema: Basico de String como variavel
* Atividade: Arrumas as maiusculas na string3, como se fosse nome proprio, colocar as primeiras letras de cada palavra em maiuscula e as demais em minuscula
* Descrição: Testar os caracteres da string usando as funções de teste de caractere
* Hardware: Montar o display e a porta serial para as entradas e saídas de dados
* Exercício desse capitulo interpretar e comentar as linhas do programa principal na função loop()
* Comandos: for(), isspace(), isupper(),
* Dica1: string é uma cadeia de caracteres, podemos até mesmo dizer um vetor de caracteres. Trás a linguagem C a capacidade de lidar com frases e palavras.
* Dica2: Quando declaramos string com s minusculo refere-se a uma variável, e quando String está com S maiusculo refere-se a objeto
* Dica3: Declaração da variavel string char nome_vetor[tamanho]{'a','b','c'}; tipo dos dados, sempre char. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor, depois
* Dica4: Lembrando que na linguagem C caractere é colocado entre ' ' (aspas simples), frases podem ser declaradas usando " " (aspas duplas)
* Dica5: Toda string termina com um caractere nulo no final(código ASCII 0), por isso na declaração deve considerar um elemento a mais no tamanho,
* * Abaixo Funções de testes de caracteres, retorna 0 se a expressão for falsa; outro valor maior que 0 (zero) se for verdadeiro
* isalnum(char) Verifica se o caractere é alfanumérico (letra e número)
* isalpha(char) Verifica se o caractere é uma letra
* iscntrl(char) Verifica se o caractere é um caractere de controle https://pt.wikipedia.org/wiki/ASCII
* isdigit(char) Verifica se o caractere é um a letra
* isgraph(char) Verifica se o caractere é um caractere gráfico
* islower(char) Verifica se o caracteres é uma letra minúscula
* isprint(char) Verifica se o caractere é imprimível
* isalnum(char) Verifica se o caractere é alfanumérico
* ispunct(char) Verifica se o caractere é um caractere de pontuação
* isspace(char) Verifica se o caractere é um espaço em branco
* isupper(char) Verifica se o caractere é uma letra maiúscula
* isxdigit(char) Verifica se o caractere é um caractere hexadecimal (0-9 ou A-F)
* ispunct(char) Verifica se o caractere é um caractere de pontuação
* * Abaixo Funções para manipular caracteres
* tolower(char) Converte o caractere para letra minúscula
* toupper(char) Converte o caractere para letra maiúscula
* atoi(string) Converte uma string com caracteres numericos em um numero inteiro
*/
//DEFINICOES INICIAIS
#include
//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,13,4,5,6,7); // Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
char string1[] = {'a','R','d','U','i','N','o','.'}; // declaração de uma string sem tamanho definido, declarado cada caractere, o nulo e o tamanho serão colocados automaticamente
char string2[6] = {'c','U','r','s','o','\0'}; // declaração de string com tamanho definido e o nulo inserido no final
char string3[] = {"primeiRa frAse tEste"}; // declaração de string usando uma frase entre aspas duplas, o tamanho e o nulo são colocados automaticamente
char string4[4] = {'1','2','3'}; // declaração de string com tamanho e definido e o nulo será colocado automáticamente, ao definir o tamanho terá que reservar o espaço para o nulo
char string5[] = {"Curso de C"}; // declaração de string
char stringFinal[30]; // declaração de uma string com 30 posições, vazia. Pode ser colocado até 29 caracteres que estão previamente alocados na memória
int i = 0; // contador
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicializa porta serial
strcpy(stringFinal, string3);
lcd.begin(16, 2);
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print(i);
Serial.print(" ");
Serial.print(string3[i]);
Serial.print("upper?");
Serial.print(isupper(string3[i]));
Serial.print("lower?");
Serial.println(islower(string3[i]));
}
//PROGRAMA PRINCIPAL
void loop() {
Serial.print("String3 ANTES de ser arrumada = ");
Serial.print(string3);
lcd.clear();
lcd.print(string3);
for(i = 0; i < strlen(string3); i++){
if(isspace(string3[i]) != 0){
i++;
string3[i] = toupper(string3[i]);
} else {
string3[i] = tolower(string3[i]);
}
if(i == 0){
if(isupper(string3[i]) == 0) string3[i] = toupper(string3[i]);
}
}
Serial.print("\n");
Serial.print("Strin3 DEPOIS de ser arumada");
Serial.print(string3);
Serial.print("\n");
lcd.setCursor(0,1);
lcd.print(string3);
delay(500);
}
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.09
* Tema: Basico de String como variavel
* Atividade: Arrumas as maiusculas na string3, como se fosse nome proprio, colocar as primeiras letras de cada palavra em maiuscula e as demais em minuscula
* Descrição: Testar os caracteres da string usando as funções de teste de caractere
* Hardware: Montar o display e a porta serial para as entradas e saídas de dados
* Exercício desse capitulo interpretar e comentar as linhas do programa principal na função loop()
* Comandos: for(), isspace(), isupper(),
* Dica1: string é uma cadeia de caracteres, podemos até mesmo dizer um vetor de caracteres. Trás a linguagem C a capacidade de lidar com frases e palavras.
* Dica2: Quando declaramos string com s minusculo refere-se a uma variável, e quando String está com S maiusculo refere-se a objeto
* Dica3: Declaração da variavel string char nome_vetor[tamanho]{'a','b','c'}; tipo dos dados, sempre char. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor, depois
* Dica4: Lembrando que na linguagem C caractere é colocado entre ' ' (aspas simples), frases podem ser declaradas usando " " (aspas duplas)
* Dica5: Toda string termina com um caractere nulo no final(código ASCII 0), por isso na declaração deve considerar um elemento a mais no tamanho,
* * Abaixo Funções de testes de caracteres, retorna 0 se a expressão for falsa; outro valor maior que 0 (zero) se for verdadeiro
* isalnum(char) Verifica se o caractere é alfanumérico (letra e número)
* isalpha(char) Verifica se o caractere é uma letra
* iscntrl(char) Verifica se o caractere é um caractere de controle https://pt.wikipedia.org/wiki/ASCII
* isdigit(char) Verifica se o caractere é um a letra
* isgraph(char) Verifica se o caractere é um caractere gráfico
* islower(char) Verifica se o caracteres é uma letra minúscula
* isprint(char) Verifica se o caractere é imprimível
* isalnum(char) Verifica se o caractere é alfanumérico
* ispunct(char) Verifica se o caractere é um caractere de pontuação
* isspace(char) Verifica se o caractere é um espaço em branco
* isupper(char) Verifica se o caractere é uma letra maiúscula
* isxdigit(char) Verifica se o caractere é um caractere hexadecimal (0-9 ou A-F)
* ispunct(char) Verifica se o caractere é um caractere de pontuação
* * Abaixo Funções para manipular caracteres
* tolower(char) Converte o caractere para letra minúscula
* toupper(char) Converte o caractere para letra maiúscula
* atoi(string) Converte uma string com caracteres numericos em um numero inteiro
*/
//DEFINICOES INICIAIS
#include
//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,13,4,5,6,7); // Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
char string1[] = {'a','R','d','U','i','N','o','.'}; // declaração de uma string sem tamanho definido, declarado cada caractere, o nulo e o tamanho serão colocados automaticamente
char string2[6] = {'c','U','r','s','o','\0'}; // declaração de string com tamanho definido e o nulo inserido no final
char string3[] = {"primeiRa frAse tEste"}; // declaração de string usando uma frase entre aspas duplas, o tamanho e o nulo são colocados automaticamente
char string4[4] = {'1','2','3'}; // declaração de string com tamanho e definido e o nulo será colocado automáticamente, ao definir o tamanho terá que reservar o espaço para o nulo
char string5[] = {"Curso de C"}; // declaração de string
char stringFinal[30]; // declaração de uma string com 30 posições, vazia. Pode ser colocado até 29 caracteres que estão previamente alocados na memória
int i = 0; // contador
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicializa porta serial
strcpy(stringFinal, string3);
lcd.begin(16, 2);
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print(i);
Serial.print(" ");
Serial.print(string3[i]);
Serial.print("upper?");
Serial.print(isupper(string3[i]));
Serial.print("lower?");
Serial.println(islower(string3[i]));
}
//PROGRAMA PRINCIPAL
void loop() {
Serial.print("String3 ANTES de ser arrumada = ");
Serial.print(string3);
lcd.clear();
lcd.print(string3);
for(i = 0; i < strlen(string3); i++){
if(isspace(string3[i]) != 0){
i++;
string3[i] = toupper(string3[i]);
} else {
string3[i] = tolower(string3[i]);
}
if(i == 0){
if(isupper(string3[i]) == 0) string3[i] = toupper(string3[i]);
}
}
Serial.print("\n");
Serial.print("Strin3 DEPOIS de ser arumada");
Serial.print(string3);
Serial.print("\n");
lcd.setCursor(0,1);
lcd.print(string3);
delay(500);
}
Re: * Exercicio: 4.09
Seg Ago 29, 2022 7:40 pm
Oi Gustavo, funcionou mas está sem os comentários.
Tem um detalhe que faltou fazer o backup da string inicial para quando o programa reiniciar mostrar a frase original com os erros. Mas não será obrigatório.
Nota 6.0
Tem um detalhe que faltou fazer o backup da string inicial para quando o programa reiniciar mostrar a frase original com os erros. Mas não será obrigatório.
Nota 6.0
- gustavocruz
- Mensagens : 256
Data de inscrição : 12/05/2019
Idade : 16
Re: * Exercicio: 4.09
Qui Set 22, 2022 3:35 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.09
* Tema: Basico de String como variavel
* Atividade: Arrumas as maiusculas na string3, como se fosse nome proprio, colocar as primeiras letras de cada palavra em maiuscula e as demais em minuscula
* Descrição: Testar os caracteres da string usando as funções de teste de caractere
* Hardware: Montar o display e a porta serial para as entradas e saídas de dados
* Exercício desse capitulo interpretar e comentar as linhas do programa principal na função loop()
* Comandos: for(), isspace(), isupper(),
* Dica1: string é uma cadeia de caracteres, podemos até mesmo dizer um vetor de caracteres. Trás a linguagem C a capacidade de lidar com frases e palavras.
* Dica2: Quando declaramos string com s minusculo refere-se a uma variável, e quando String está com S maiusculo refere-se a objeto
* Dica3: Declaração da variavel string char nome_vetor[tamanho]{'a','b','c'}; tipo dos dados, sempre char. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor, depois
* Dica4: Lembrando que na linguagem C caractere é colocado entre ' ' (aspas simples), frases podem ser declaradas usando " " (aspas duplas)
* Dica5: Toda string termina com um caractere nulo no final(código ASCII 0), por isso na declaração deve considerar um elemento a mais no tamanho,
* * Abaixo Funções de testes de caracteres, retorna 0 se a expressão for falsa; outro valor maior que 0 (zero) se for verdadeiro
* isalnum(char) Verifica se o caractere é alfanumérico (letra e número)
* isalpha(char) Verifica se o caractere é uma letra
* iscntrl(char) Verifica se o caractere é um caractere de controle https://pt.wikipedia.org/wiki/ASCII
* isdigit(char) Verifica se o caractere é um a letra
* isgraph(char) Verifica se o caractere é um caractere gráfico
* islower(char) Verifica se o caracteres é uma letra minúscula
* isprint(char) Verifica se o caractere é imprimível
* isalnum(char) Verifica se o caractere é alfanumérico
* ispunct(char) Verifica se o caractere é um caractere de pontuação
* isspace(char) Verifica se o caractere é um espaço em branco
* isxdigit(char) Verifica se o caractere é um caractere hexadecimal (0-9 ou A-F)
* ispunct(char) Verifica se o caractere é um caractere de pontuação
* * Abaixo Funções para manipular caracteres
* tolower(char) Converte o caractere para letra minúscula
* toupper(char) Converte o caractere para letra maiúscula
* atoi(string) Converte uma string com caracteres numericos em um numero inteiro
*/
//DEFINICOES INICIAIS
#include
//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,13,4,5,6,7); // Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
char string1[] = {'a','R','d','U','i','N','o','.'}; // declaração de uma string sem tamanho definido, declarado cada caractere, o nulo e o tamanho serão colocados automaticamente
char string2[6] = {'c','U','r','s','o','\0'}; // declaração de string com tamanho definido e o nulo inserido no final
char string3[] = {"primeiRa frAse tEste"}; // declaração de string usando uma frase entre aspas duplas, o tamanho e o nulo são colocados automaticamente
char string4[4] = {'1','2','3'}; // declaração de string com tamanho e definido e o nulo será colocado automáticamente, ao definir o tamanho terá que reservar o espaço para o nulo
char string5[] = {"Curso de C"}; // declaração de string
char stringFinal[30]; // declaração de uma string com 30 posições, vazia. Pode ser colocado até 29 caracteres que estão previamente alocados na memória
int i = 0; // contador
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicializa porta serial
strcpy(stringFinal, string3); //copia os valores da string3 para a stringfinal
lcd.begin(16, 2);//inicia o display
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print(i);//escreve o valor de i
Serial.print(" ");//escreve um espaço
Serial.print(string3[i]);//escreve a posição i da string3
Serial.print("upper?");//escreve um pequeno texto
Serial.print(isupper(string3[i]));//verifica se a posição i é maiuscula
Serial.print("lower?");//escreve um pequeno texto
Serial.println(islower(string3[i]));//verifica se a posição i é minuscula
}
//PROGRAMA PRINCIPAL
void loop() {
Serial.print("String3 ANTES de ser arrumada = ");//escreve um pequeno texto
Serial.print(string3);//escreve os valores dentro da string no monitor
lcd.clear();//limpa o display
lcd.print(string3);//escreve os valores dentro da string no display
for(i = 0; i < strlen(string3); i++){//inicia um loop usando o for
if(isspace(string3[i]) != 0){//verifica se a posiçao e um espaço em branco
i++;//i mais 1
string3[i] = toupper(string3[i]);//a posiçao i vai virar uma letra maiuscula
} else { //se não
string3[i] = tolower(string3[i]);//vai virar uma letra minuscula
}
if(i == 0){//se i for igual a 0
if(isupper(string3[i]) == 0) string3[i] = toupper(string3[i]);//transforma a primeira letra em maiuscula
}
}
Serial.print("\n");//pula uma linha
Serial.print("Strin3 DEPOIS de ser arumada");//pequeno texto no monitor
Serial.print(string3);//mostra os valores dde string3
Serial.print("\n");//pula uma linha
lcd.setCursor(0,1);//posisiona o cursor na primeira posisao da segundo linha
lcd.print(string3);//escreve o valor da string
delay(500);//intervalo de meio segundo
strcpy(string3, stringFinal);//reinicia a string3
delay(500);//intervalo de meio segundo
}//comentado finalmente
* CURSO DE ROBOTICA 2020
*
* Exercicio: 4.09
* Tema: Basico de String como variavel
* Atividade: Arrumas as maiusculas na string3, como se fosse nome proprio, colocar as primeiras letras de cada palavra em maiuscula e as demais em minuscula
* Descrição: Testar os caracteres da string usando as funções de teste de caractere
* Hardware: Montar o display e a porta serial para as entradas e saídas de dados
* Exercício desse capitulo interpretar e comentar as linhas do programa principal na função loop()
* Comandos: for(), isspace(), isupper(),
* Dica1: string é uma cadeia de caracteres, podemos até mesmo dizer um vetor de caracteres. Trás a linguagem C a capacidade de lidar com frases e palavras.
* Dica2: Quando declaramos string com s minusculo refere-se a uma variável, e quando String está com S maiusculo refere-se a objeto
* Dica3: Declaração da variavel string char nome_vetor[tamanho]{'a','b','c'}; tipo dos dados, sempre char. Nome do vetor identifica a variável. Entre conchetes vai o tamanho do vetor, depois
* Dica4: Lembrando que na linguagem C caractere é colocado entre ' ' (aspas simples), frases podem ser declaradas usando " " (aspas duplas)
* Dica5: Toda string termina com um caractere nulo no final(código ASCII 0), por isso na declaração deve considerar um elemento a mais no tamanho,
* * Abaixo Funções de testes de caracteres, retorna 0 se a expressão for falsa; outro valor maior que 0 (zero) se for verdadeiro
* isalnum(char) Verifica se o caractere é alfanumérico (letra e número)
* isalpha(char) Verifica se o caractere é uma letra
* iscntrl(char) Verifica se o caractere é um caractere de controle https://pt.wikipedia.org/wiki/ASCII
* isdigit(char) Verifica se o caractere é um a letra
* isgraph(char) Verifica se o caractere é um caractere gráfico
* islower(char) Verifica se o caracteres é uma letra minúscula
* isprint(char) Verifica se o caractere é imprimível
* isalnum(char) Verifica se o caractere é alfanumérico
* ispunct(char) Verifica se o caractere é um caractere de pontuação
* isspace(char) Verifica se o caractere é um espaço em branco
* isxdigit(char) Verifica se o caractere é um caractere hexadecimal (0-9 ou A-F)
* ispunct(char) Verifica se o caractere é um caractere de pontuação
* * Abaixo Funções para manipular caracteres
* tolower(char) Converte o caractere para letra minúscula
* toupper(char) Converte o caractere para letra maiúscula
* atoi(string) Converte uma string com caracteres numericos em um numero inteiro
*/
//DEFINICOES INICIAIS
#include
//DECLARAcAO DE VARIAVEIS GLOBAIS
LiquidCrystal lcd(12,13,4,5,6,7); // Setup conforme as ligações realizadas RS-EN-D4-D5-D6-D7
char string1[] = {'a','R','d','U','i','N','o','.'}; // declaração de uma string sem tamanho definido, declarado cada caractere, o nulo e o tamanho serão colocados automaticamente
char string2[6] = {'c','U','r','s','o','\0'}; // declaração de string com tamanho definido e o nulo inserido no final
char string3[] = {"primeiRa frAse tEste"}; // declaração de string usando uma frase entre aspas duplas, o tamanho e o nulo são colocados automaticamente
char string4[4] = {'1','2','3'}; // declaração de string com tamanho e definido e o nulo será colocado automáticamente, ao definir o tamanho terá que reservar o espaço para o nulo
char string5[] = {"Curso de C"}; // declaração de string
char stringFinal[30]; // declaração de uma string com 30 posições, vazia. Pode ser colocado até 29 caracteres que estão previamente alocados na memória
int i = 0; // contador
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicializa porta serial
strcpy(stringFinal, string3); //copia os valores da string3 para a stringfinal
lcd.begin(16, 2);//inicia o display
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print(i);//escreve o valor de i
Serial.print(" ");//escreve um espaço
Serial.print(string3[i]);//escreve a posição i da string3
Serial.print("upper?");//escreve um pequeno texto
Serial.print(isupper(string3[i]));//verifica se a posição i é maiuscula
Serial.print("lower?");//escreve um pequeno texto
Serial.println(islower(string3[i]));//verifica se a posição i é minuscula
}
//PROGRAMA PRINCIPAL
void loop() {
Serial.print("String3 ANTES de ser arrumada = ");//escreve um pequeno texto
Serial.print(string3);//escreve os valores dentro da string no monitor
lcd.clear();//limpa o display
lcd.print(string3);//escreve os valores dentro da string no display
for(i = 0; i < strlen(string3); i++){//inicia um loop usando o for
if(isspace(string3[i]) != 0){//verifica se a posiçao e um espaço em branco
i++;//i mais 1
string3[i] = toupper(string3[i]);//a posiçao i vai virar uma letra maiuscula
} else { //se não
string3[i] = tolower(string3[i]);//vai virar uma letra minuscula
}
if(i == 0){//se i for igual a 0
if(isupper(string3[i]) == 0) string3[i] = toupper(string3[i]);//transforma a primeira letra em maiuscula
}
}
Serial.print("\n");//pula uma linha
Serial.print("Strin3 DEPOIS de ser arumada");//pequeno texto no monitor
Serial.print(string3);//mostra os valores dde string3
Serial.print("\n");//pula uma linha
lcd.setCursor(0,1);//posisiona o cursor na primeira posisao da segundo linha
lcd.print(string3);//escreve o valor da string
delay(500);//intervalo de meio segundo
strcpy(string3, stringFinal);//reinicia a string3
delay(500);//intervalo de meio segundo
}//comentado finalmente
Re: * Exercicio: 4.09
Qui Set 22, 2022 10:47 pm
Oi Gustavo, o programa está correto nota 10.0
Estava vendo seus comentários e está descrevendo o comando da forma mais obvia.
Vou cobrar que interprete o programa com a influencia do comando no contexto do programa.
É bem fácil de fazer, em vez de descrever o que é o comando, descreva para que serve, porque do comando
Estava vendo seus comentários e está descrevendo o comando da forma mais obvia.
Vou cobrar que interprete o programa com a influencia do comando no contexto do programa.
É bem fácil de fazer, em vez de descrever o que é o comando, descreva para que serve, porque do comando
Permissões neste sub-fórum
Não podes responder a tópicos