Explique como funciona o ciclo "for".
For (int i= 0 ; i < 4; i++) soma + = notas [i];
Alguém me poderia ajudar a responder a esta questão? é bastante urgente...
cumps
Mr. Brightside
13-11-2007, 21:41
http://en.wikipedia.org/wiki/For_loop
Aprende a procurar...
http://en.wikipedia.org/wiki/For_loop
Aprende a procurar...
Obrigado pela ajuda... Mas não percebo mesmo nada de inglês... :S
E era como funciona o ciclo "for" naquela situação... Se alguém me puder ajudar agradeço...
cumps
sir_atmc
13-11-2007, 22:42
Então tens:
For (int i= 0 ; i < 4; i++)
O que é que isto quer dizer? Ele declara o i como sendo do tipo int. Cria um ciclo desde i = 0 até i < 4, com o i a ser incrementado depois de cada execução do ciclo.
soma + = notas [i];
Isto é igual a
soma = soma + notas[i];
Em cada execução do ciclo, e enquanto que o i seja menor que 4, ele vai efectuar uma soma do valor que está em soma com o valor que está no inidice do vector (vou pensar que é um vector) notas. Ou seja
começa com i = 0
e faz
soma += notas[0];
depois incrementa o i para 1. Como ainda verifica a condição faz
soma += notas[1];
até que faz o ultimo
soma += notas[3];
o que significa o notas[i]? os elementos do vector são acedidos por indice. O primeiro elemento é o elemento de indice 0, que pode ser acedido por notas.begin() ou notas[0], e assim sucessivamente.
Já estás a considerar que notas é um [I]vector, quando na realidade pode ser apenas um simples array.
Acho que introduzir aqui iteradores, quando ele ainda não percebe como funciona um ciclo for é capaz de não ser uma boa ideia. :p
sir_atmc
15-11-2007, 11:27
Sim, mas dado que ele não disse o que era...também sendo um array ou um vector a coisa vai dar quase ao mesmo na maneira como se acede aos elementos. Mas se o user dissesse mais alguma coisa era boa ideia ;)
Vou usar este topico para nao abrir outro.
Tenho a minha funçao main que vai chamar n vezes a funçao colocar(num ciclo for).E dentro da funçao colocar preciso de escrever para um ficheiro certos "passos" que acontecem la,isso atraves de ofstream.
O problema é que se abro o ficheiro ja dentro da colocar,so me fica la a ultima parte pois a cada vez que o ficheiro é aberto,apaga tudo o que la tenho.
Tava a pensar em abrir o ofstream dentro da main,por exemplo ofstream my(teste.txt) e depois passar o my como parametro na funçao colocar mas nao consigo.
Alguem sabe como se pode fazer isso?
sir_atmc
17-11-2007, 13:50
Não tenho aqui nenhum compilador de C++, mas não precisas de ter outra função
int main()
{
string cenas;
ofstream myfile("teste.txt");
myfile.open();
cout << "Escreva qualquer coisa: ";
while (cin)
{
cout << endl;
if (myfile.is_open())
{
myfile << cenas << endl;
}
} //fecha o ciclo while. Para terminar o intput fazer ctrl+z em windows, ctrl+d em UNIX
}
Peço desculpa pela indentação e se estiver errado, mas tive de fazer à pressa e não tenho aqui nenhum compilador para testar.
Obrigado pela ajuda... Mas não percebo mesmo nada de inglês... :S
Epa... então tás na àrea errada... :002:
Vou usar este topico para nao abrir outro.
Tenho a minha funçao main que vai chamar n vezes a funçao colocar(num ciclo for).E dentro da funçao colocar preciso de escrever para um ficheiro certos "passos" que acontecem la,isso atraves de ofstream.
O problema é que se abro o ficheiro ja dentro da colocar,so me fica la a ultima parte pois a cada vez que o ficheiro é aberto,apaga tudo o que la tenho.
Tava a pensar em abrir o ofstream dentro da main,por exemplo ofstream my(teste.txt) e depois passar o my como parametro na funçao colocar mas nao consigo.
Alguem sabe como se pode fazer isso?
Boas. Olha, eu resolvia o teu problema da seguinte forma:
#include <fstream>
using namespace std;
int main()
{
char* mensagem;
mensagem = new char[25];
cout <<"Escreva a sua mensagem--> ";
cin >>mensagem;
while (mensagem != EOF) //CTRL+Z em sistema Windows
{
//este especificador de acesso faz com que tudo o que seja acrescentado o seja feito no final do ficheiro.
ofstream WriteFile ("ficheiro.txt", ios::app);
WriteFile << mensagem;
cin>>mensagem;
} //fecho implicito do ficheiro e garantia de escrita no disco.
delete [] mensagem; //eliminar da memória RAM a tua variável.
return 0;
}
Prontos, acho que isto funciona. Não compilei mas em principio deve resultar. Se houver algum erro avisa para corrigir.
Vá, cumps.