Vetor/Array de Char como utilizar??
Olá, sou novo no Fórum e sou iniciante em programação.
Estou com um problema com um algoritmo
Esse algoritmo deve receber os valores inseridos pelo usuario em dois vetores A e B e armazenar as 4 operações (+-*/) para posteriormente em um vetor C com uma operação em cada vetor de A e B guardar os valores em C.
Exemplo:
va[0] = 1, va[1] = 2
vb[0] = 2, vb[1] = 1
vo[0] = +, vo[1] = -
Resultado:
vc[0] = 1 + 2, vc[1] = 2 - 1;
Do livro Forbellone.
O Algoritmo é +/- assim.
Se puderem me ajudar, eu agradeço muito!
import javax.swing.JOptionPane;
public class R11 {
public static void main(String[] args) {
int[] va, vb;
va = new int[20];
vb = new int[20];
String[] vo = new String[20];
double[] vc;
vc = new double[20];
String sva, svb;
char svo;
for(int i = 0; i<=19; i++){
sva = JOptionPane.showInputDialog(null, "Digite os valores dos vetores de A de 1 ate 20");
va[i] = Integer.parseInt(sva);
}
for(int i = 0; i<=19; i++){
svb = JOptionPane.showInputDialog(null, "Digite os valores dos vetores de B de 1 ate 20");
vb[i] = Integer.parseInt(svb);
}
for(int j = 0; j<=19; j++){
svo = JOptionPane.showInputDialog(null, "Digite as operações a serem feitas com os vetores de A e B de 1 ate 20");
vo[j] = char.parsechar(svo); // aqui ocorre um erro, como se insere valores dentro de um vetor com char?
}
for(int l = 0; l<=19; l++){
vc = Double.parseDouble(vc);
if (vo[l] == +){
vc[l] = va[l] + vb[l];
}else if(vo[l] == "-"){
vc[l] = va[l] - vb[l];
}else if (vo[l] == "*"){
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
}Vinicius Santos
Curtidas 0
Respostas
Thiago Silva
03/06/2009
Fala cara, blza?
Então, mas pq vc não simplesmente adiciona no vetor "vo" o valor digitado, como String mesmo??
Ai é só comparar depois, só que com [b]vo[l].equals("+");[/b]
GOSTEI 0
Vinicius Santos
03/06/2009
[quote="Thiago Luis"]Fala cara, blza?
Então, mas pq vc não simplesmente adiciona no vetor "vo" o valor digitado, como String mesmo??
Ai é só comparar depois, só que com [b]vo[l].equals("+");[/b]
vc poderia me mostrar em q parte eu coloco esse vetor?
e onde ponho esse b]vo[l].equals("+")
Vlw
GOSTEI 0
Ricardo Viana
03/06/2009
Leia:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Character.html
e isso:
http://doc.java.sun.com/DocWeb/api/java.lang.Character
(basicamente os dois são iguais, mas o segundo tem algumas coisas em PT_BR)
Tendo uma base de como trabalhar com Character vai ajudar.
Alias, nem sei porque você quer colocar um char ali se o array é de Strings.
Armazena como String mesmo.
String[] vo = new String[20];
for(int j = 0; j<=19; j++){
svo = JOptionPane.showInputDialog(null, "Digite as operações a serem feitas com os vetores de A e B de 1 ate 20");
vo[j] = String.valueOf(svo); // aqui você armazena o seu "char", mas chamando o valueOf do método String (transformando o char em String).
}
GOSTEI 0
Vinicius Santos
03/06/2009
Muito bom!!! Agora tá certo!
O problema agora é saber como utilizar um array dentro de um if com valor definido. Vejam:
e ae galera?
for(int l = 0; l<=19; l++){
if (vo[l] == +){ //essa aplicação não é valida porque?
vc[l] = va[l] + vb[l];
}else if(vo[l] == -){
vc[l] = va[l] - vb[l];
}else if (vo[l] == *){
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
GOSTEI 0
William Siqueira
03/06/2009
[quote="viniciusmalbeck"]Muito bom!!! Agora tá certo!
O problema agora é saber como utilizar um array dentro de um if com valor definido. Vejam:
e ae galera?
Por que char se representa por aspas simples em java:
for(int l = 0; l<=19; l++){
if (vo[l] == +){ //essa aplicação não é valida porque?
vc[l] = va[l] + vb[l];
}else if(vo[l] == -){
vc[l] = va[l] - vb[l];
}else if (vo[l] == *){
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
for(int l = 0; l<=19; l++){
if (vo[l] == '+'){ //essa aplicação não é valida porque?
vc[l] = va[l] + vb[l];
}else if(vo[l] == '-'){
vc[l] = va[l] - vb[l];
}else if (vo[l] == '*'){
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
GOSTEI 0
Vinicius Santos
03/06/2009
[quote="jesuino"][quote="viniciusmalbeck"]Muito bom!!! Agora tá certo!
O problema agora é saber como utilizar um array dentro de um if com valor definido. Vejam:
e ae galera?
Por que char se representa por aspas simples em java:
for(int l = 0; l<=19; l++){
if (vo[l] == +){ //essa aplicação não é valida porque?
vc[l] = va[l] + vb[l];
}else if(vo[l] == -){
vc[l] = va[l] - vb[l];
}else if (vo[l] == *){
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
for(int l = 0; l<=19; l++){
if (vo[l] == '+'){ //essa aplicação não é valida porque?
vc[l] = va[l] + vb[l];
}else if(vo[l] == '-'){
vc[l] = va[l] - vb[l];
}else if (vo[l] == '*'){
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
for(int l = 0; l<=19; l++){
if (vo[l] == '+'){ //incomparable types: java.lang.String and char
vc[l] = va[l] + vb[l];
}else if(vo[l] == '-'){ // incomparable types: java.lang.String and char
vc[l] = va[l] - vb[l];
}else if (vo[l] == '*'){ // incomparable types: java.lang.String and char
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}GOSTEI 0
William Siqueira
03/06/2009
[quote="viniciusmalbeck"][quote="jesuino"][quote="viniciusmalbeck"]Muito bom!!! Agora tá certo!
O problema agora é saber como utilizar um array dentro de um if com valor definido. Vejam:
e ae galera?
Por que char se representa por aspas simples em java:
for(int l = 0; l<=19; l++){
if (vo[l] == +){ //essa aplicação não é valida porque?
vc[l] = va[l] + vb[l];
}else if(vo[l] == -){
vc[l] = va[l] - vb[l];
}else if (vo[l] == *){
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
for(int l = 0; l<=19; l++){
if (vo[l] == '+'){ //essa aplicação não é valida porque?
vc[l] = va[l] + vb[l];
}else if(vo[l] == '-'){
vc[l] = va[l] - vb[l];
}else if (vo[l] == '*'){
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
for(int l = 0; l<=19; l++){
if (vo[l] == '+'){ //incomparable types: java.lang.String and char
vc[l] = va[l] + vb[l];
}else if(vo[l] == '-'){ // incomparable types: java.lang.String and char
vc[l] = va[l] - vb[l];
}else if (vo[l] == '*'){ // incomparable types: java.lang.String and char
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}
for(int l = 0; l<=19; l++){
if (vo[l].equals('+')){ //incomparable types: java.lang.String and char
vc[l] = va[l] + vb[l];
}else if(vo[l].equals('-')){ // incomparable types: java.lang.String and char
vc[l] = va[l] - vb[l];
}else if (vo[l] .equals('*')){ // incomparable types: java.lang.String and char
vc[l] = va[l]*vb[l];
}else{
vc[l] = va[l]/vb[l];
}
}GOSTEI 0
Vinicius Santos
03/06/2009
Hah, matou a charada agora funciona perfeitamente vlww!
Ah, mantenham o topico pra se alguem tiver duvidas...
GOSTEI 0
Ricardo Viana
03/06/2009
Não esquenta. Os tópicos sempre são mantidos. ;)
GOSTEI 0