База ответов ИНТУИТ

Common Intermediate Language и системное программирование в Microsoft .NET

<<- Назад к вопросам

В следующем примере:
.class public SampleClass{ .method public static void Demo() {  .entrypoint  .maxstack 3  ldc.r8 	  0.0  ldc.r8 	  0.0  newobj 	  void Point::.ctor(float64,float64)  ldc.r8 	  1.0  ldc.r8 	  1.0  newobj 	  void Point::.ctor(float64,float64)  call 		  float64 Point::Distance(valuetype Point, valuetype Point)  call 	  void [mscorlib]System.Console::WriteLine (float64)  ret   }}
метод Demo будет вычислять расстояние между точками:

(Отметьте один правильный вариант ответа.)

Варианты ответа
(0.0,0.0) и (1.0,1.0)(Верный ответ)
(0.0,1.0) и (0.0,1.0)
(1.0,0.0) и (0.0,1.0)
(1.0,1.0) и (0.0,0.0)
Похожие вопросы
В данном примере:
public abstract class Expression{ public abstract string GenerateCS(); public abstract void GenerateCIL(ILGenerator il); public abstract double Evaluate(double x);}
метод GenerateCIL:
В данном примере:
public abstract class Expression{ public abstract string GenerateCS(); public abstract void GenerateCIL(ILGenerator il); public abstract double Evaluate(double x);}
метод GenerateCS:
В данном примере:
public abstract class Expression{ public abstract string GenerateCS(); public abstract void GenerateCIL(ILGenerator il); public abstract double Evaluate(double x);}
метод Evaluate:
Класс InsertSortedArray:
using VBLib;public class InsertSortedArray: SortedArray{  protected override void Sort()  {    for (int i = 0; i < Arr.Length-1; i++)    {      int max = i;      for (int j = i+1; j < Arr.Length; j++)        if (Arr[j] > Arr[max])          max = j;      int tmp = Arr[i];      Arr[i] = Arr[max];      Arr[max] = tmp;    }  }  public InsertSortedArray(int[] A): base(A) { }}
переопределяет абстрактный метод:
Самое начало процедуры потока, там, где определяется номер полосы:
public static void ThreadProc(){  int    i,j,k, from, to;  from = ( m_stripused++ ) * m_stripsize;  to = from + m_stripsize;  ...
с помощью атомарных операций можно переписать так:
В следующем примере:
class SomeData {  [ThreadStatic]  public static double  xxx;  ...
поле класса SomeData.xxx будет размещено:
В данном примере:
#include <stdio.h>#include <process.h>#include <windows.h>#define THREADS 10#define ASIZE  10000000static LONG   array[ASIZE];unsigned __stdcall ThreadProc( void *param ){  int  i;  for ( i = 0; i < ASIZE; i++ ) array[i]++;  return 0;}int main( void ){  HANDLE  	hThread[THREADS];  unsigned 	dwThread;  int 			i, errs;  for ( i = 0; i < THREADS; i++ )    hThread[i] = (HANDLE)_beginthreadex(      NULL, 0, ThreadProc, NULL, 0, &dwThread    );  WaitForMultipleObjects( THREADS, hThread, TRUE, INFINITE );  for ( i = 0; i < THREADS; i++ ) CloseHandle( hThread[i] );  for ( errs=i=0; i<ASIZE; i++ )    if ( array[i] != THREADS ) errs++;  if ( errs ) printf("Detected %d errors!\n", errs );  return 0;}
несколько потоков увеличивают значение элементов общего массива на:
В данном примере:
void make_file (FILE* file, PINPUT_PARAMETERS inP){  make_headers	 		(file, inP);  make_text_section	(file, inP);  make_cli_section 	(file, inP);  make_reloc_section	(file, inP);};
функция make_file вызывает:
В данном случае:
DWORD FlsAlloc( PFLS_CALLBACK_FUNCTION lpCallback );VOID WINAPI FlsCallback( PVOID lpFlsData ){  ...}
происходит:
Диаграмма стека для инструкции newobj: