Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - dokomaster

#1
Programación C/C++ / Asignacion de memoria virtual
10 Septiembre 2016, 02:28 AM
debo hacer un programa que a partir de un vector de caracteres asignado con new
simule el comportamiento del sistema operativo cuando las funciones antes mencionadas son invocadas. Para ello debe pensar que:
El vector creado es la memoria ram.
Las funciones malloc, realloc, free y memset deberan ser implementadas pensando en el
punto anterior.
Los punteros void que usan algunas funciones, seran simplemente una estructura (struct), que almacenara el nombre del puntero, donde comienza en el vector "memoria ram" y que tamaño tiene.
Debe salvaguardar la integridad de la memoria, por lo que cada nueva asignacion de
esta (malloc,realloc) debe verificar que la nueva memoria asignada esta libre (no ha sido asignada previamente) y que existe espacio suficiente en la memoria.
Las funciones a ejecutar en este "sistema de memoria" seran entregadas al programa a
traves de un archivo de texto, obviamente yo haré el archivo de texto asique es lo de menos, mas que nada necesito ayuda el los puntos entregados.

La primera linea contiene el numero de elementos del vector "memoria ram".
A partir de ahi tendra una serie de funciones codificadas con un numero diferente en
cada linea con el siguiente formato:
• Para malloc el codigo es 1, seguido de un string con el nombre del puntero y un
numero que indicar´a size. Ej: asignar 8 bytes = 1 ptr 8.
• Para realloc el codigo es 2, seguido de un string que es el nombre del puntero que
debe ser modificado y un numero que es el nuevo size. Ej: reasignar a ptr 10 bytes
= 2 ptr 10.
• Para free el codigo es 3, seguido de un string que es el puntero a eliminar. Ej:
liberar ptr = 3 ptr.
• Para memset el codigo es 4, seguido de un string que indica el puntero, un numero
que indica el value y otro n´umero que indica el num. Ej: setear a 0 la memoria
asignada por ptr las siguientes 2 posiciones = 4 ptr 0 2.
• Una linea que comienza con 0, finaliza el programa.
Un ejemplo de este archivo de entrada serıa:
100
1 ptr1 10
1 ptr2 10
1 ptr3 10
2 ptr1 50
3 ptr2
4 ptr1 0 10
0

aca tengo las funciones ya definidas:

   void malloc(string ptr, int size)
{
...

}
void realloc(tring ptr, int size)
{
...

}
void free(string ptr)
{
...

}
void memset(sting ptr, int value, int n)
{
...

}
void print_ram()
{
for(int i=0; i<memtotal; i++)
{
cout<<(int)memoriaram[i]<<" ";

}
cout << endl;
exit(0);
}
}


obviamente con los switch case mas arriba, solo puse las funciones ya definidas para que me ayuden o iluminen un poco como usarlas. si necesitan mas codigo de las variables globales y locales me lo piden ya que las tengo puestas mas arriba del codigo.

MOD EDIT: Etiquetas GeSHi.
#2
tengo un programa en c++ que me invierte ciertos números con iteradores que es este:

#include<iostream>
#include<vector>

using namespace std;

int main(){
   ifstream narchivos;
    narchivos.open("lista.txt");
    int a,b,c,d;
   
   vector<int> vec;
   vector<int>::iterator it;
   vector<int>::reverse_iterator rit;

   // Llenamos todas las posiciones con el numero 100.
   for(int i = 0; i < 10; ++i){
      vec.push_back(i);
   }
   // Recorremos el vector con iteradores.
        cout << "recorrido con iterador" << endl;
   for(it = vec.begin(); it != vec.end(); ++it){
      cout << *it << " ";
   }
   cout << endl;

        // Recorremos el vector inverso con iteradores.
        cout << "recorrido con iterador" << endl;
        for(rit = vec.rbegin(); rit != vec.rend(); ++rit){
                cout << *rit << " ";
        }
        cout << endl;
}


La duda es que nose como hacerlo con archivos, en donde ingrese una serie de  palabras y me de como salida el inverso, como este ejemplo:

1-hola                1-mundo
2-mundo            2-hola
#3
Programación C/C++ / ayuda en c++
7 Junio 2016, 23:19 PM
Hola tengo una pequeña duda lo que pasa es que tengo que escribir un programa en c++ sobre pares ordenados cosa que es fácil pero nose como hacerlo con estructuras tal como esto:

typedef struct par_ordenado
{
int x;
int y;
}
par_ordenado;

seria de gran utilidad su ayuda por favor