El valor de i es un string porque estas sacándolo de una lista de strings. Quita las comillas de los elementos de la lista de estudiantes para que sean los nombres de los estudiantes:
lista_estudiantes=[lloyd,alice,tyler]
def ficha():
for i in lista_estudiantes:
print ''
pr...
@FranAcuna No, no se porque a la gente no les gusta java. Pero a mi me gusta y su clase String es por mucho superior a la clase String de C++, El ploblema de java es que es muy limitado. Pero lo bueno es que un codigo java puede ejecutarse en cualquier aparato que tenga una maquina virtual, sin hacer una modificacio al codigo fuente.
Pero lo que no me gusta es que cuando tenia la maquina virtual se me paralizaba la computadora, y esa fué la razon de porque lo dejé.
Hola gente! queria hacer una consulta quiza un poco basica pero a la cual no pude encontrar respUesta. Estoy comenzando a programar en C, por lo cual, abro proyecto, cuando compilo guardo el archivos fuente,y hasta ahi todo bien, pero cuando quiero agregar otro archivo fuente dentro del mismo proycto me salta un choclo en una pestaña de Makefiles o algo asi.
Mi consulta apunta basicamente a que si puedo guardar dentro de un proyecto varios archivos fuente, cada uno con el coodigo de los ejrcicios resueltos, para no tener que estar abriendo un proyecto por cada uno
@DanielBriceño No, cuando voy a compilar el nuevo archivo que quiero agregar al proyecto directamente se abre la pestaña makefile.win con todo ese choclo, que intente entender el error, pero no hubo caso
public class Classes
{
Public Classes(String message)
{
System.out.println(message);
}
public static void main(String[] args)
{
Classes MyNewClass = new Classes("Hello, Java!"); // Create an instance of the class
}
}
@NicolásCastellanos o sea.. no te gusta que un sistema diseñado por montones de usuarios a traves de 30 años evite que cometas esos errores y pierdas un buen rato para solucionarlos?
yo les voy a dejar esto picando.. si todos los que trabajamos en esto, desde hace mas de 20 años, trabajamos con ides para hacer absolutamente todo... debe ser por algo no? porque tengan en cuenta, que algunos no teniamos nada de nada cuando empezamos a programar.. y por algo evolucionamos a una ide.. cualquiera...
piensenlo cuando decidan que no quieren usar una ide
@gbianchi hagamos una cosa, te voy a decir como creo yo que se ejecutan los programas de java y tu me dices si estoy bien
Los archivos generados por javac son clases compiladas que el JRE puede interpretar, por lo cual no se esta escribiendo un programa sino una clase que el programa (JRE) ejecuta
@NicolásCastellanos Más bien habría que verlo como que javac compila código Java y lo convierte a código máquina de una CPU que no existe
y JRE es el "emulador" de esa CPU
y en realidad no hay razón que impida construir de verdad una CPU que ejecute nativamente bytecode java. De hecho creo que se está haciendo o se ha hecho
por otro lado, los flags de la cpu cambian con cada operación que se va realizando en ella (en especial los flags Z, C, O, S) por lo que tampoco veo muy útil meter una instrución asm en medio de un programa C para consultar un flag, pues el valor de ese flag dependerá de qué instrucciones ASM hizo justo antes (las cuales no controlas porque son las generadas por el compilador)
no, no existe porque los flags son también dependientes de la arquitectura de la CPU.
C es un lenguaje que no depende de qué CPU lo ejecute, por lo que no puede tener flags
Linux está hecho en su mayor parte en C, sí. Pero sólo con C puro no puedes. Habrá partes en ensamblador
una vez has escrito en ASM los trozos que acceden directamente al hardware, puedes escribir programas en C que invoquen esos trozos cuando lo necesites
no hay registro IF que yo conozca. Lo que sí hay es el Interruption Flag, que es un bit dentro de FLAGS. Te refieres a ese?
ese bit se usa como máscara sobre la línea INT
si ese bit es 0, la línea INT no "molestará" nunca a la CPU, porque lo que a la CPU le llega es el resultado de INT and IF. Y si IF es 0, le llega siempre 0
si ese bit es 1, entonces a la CPU llegará lo que haya en la línea INT. Si hay 0, le llega 0. Si hay 1 le llega 1
cuando a la cpu le llega un 1 de la línea INT, detiene lo que estuviera haciendo y saltará a una rutina específica de tratamiento de interrupciones
eso está relacionado con atender peticiones de dispositivos de E/S
En la arquitectura x86 puedes manipular el bit IF con las instrucciones STI (que lo pone a 1) o CLI (que lo pone a 0)
la instrucción INT no tiene mucho que ver con lo que te acabo de contar
las interrupciones hardware que llegan a la CPU por la línea INT ocurren en cualquier momento, con independencia de lo que se esté ejecutando en ese momento
son como si alguien llamara a tu puerta, no puedes controlar cuándo ocurrirá
la instrucción INT en cambio es una instrucción más que puedes poner en tu programa cuando quieras, por tanto esa sí está bajo tu control
lo que tienen en común la línea INT y la instrucción INT es que el mecanismo que usan para abandonar el programa en ejecución y saltar a otra parte de la memoria, es el mismo
así como el mecanismo para retornar al programa abandonado también es el mismo (instrucción IRET)
RET altera dos registros: El puntero de pila (porque saca un dato de la pila, en particular saca de ahí la dirección a la que tiene que saltar), y el puntero de instrucción (porque es donde mete el dato que acaba de sacar de la pila)
Una analogía. Estás leyendo un libro y de pronto te dice "Salta a la página 212 para volver después aquí"
lo que haces es apuntar en un papel (la pila) la página en la que estabas
después saltas a la página 212
continúas la lectura y cuando diga "Vuelve a la página en que estabas" (lo que sería un RET) lo que harás será sacar del papel (la pila) el número que habías apuntado
lo mismo ocurre con la instrucción CALL. Guarda en la pila el valor que en ese momento tiene el contador de programa, o puntero de instrucción IP, y salta
y cuando se encuentra RET; toma de la pila lo que haya allí, lo guarda en IP y continúa
es lo más parecido que tienes en asm a una llamada a función
en realidad es un salto a otro lugar, pero previamente guardando por dónde ibas para poder retornar
una llamada a una función normalmente involucra algo más que un mero salto. Hay también un paso de parámetros, pero en asm no hay tal cosa. Si quieres pasar parámetros tienes que inventar cómo
por ejemplo preparar ciertos datos en ciertos registros antes de saltar
a ver, todas las instrucciones que escribes llevan un tiempo. Ninguna instrucción se ejecuta instantáneamente. Por tanto todas las instrucciones "ralentizan el programa" si quieres verlo así. Pero no te queda más remedio que ponerlas!
la arquitectura intel tiene muchas instrucciones así, que no serían necesarias porque se puede hacer lo mismo de otra forma. Sin embargo esas instrucciones existen porque permiten hacer en una sola instrucción cosas que son muy comunes en todos los programas
asi que puedes escribir programas ligeramente más cortos, y también ligeramente más rápidos cuando las usas