LAB1.C Code: #include <stdio.h> #include <math.h> int main(int argc, char ** argv){ double a,x,y,z; (void) printf("Enter values for X,Y,Z:"); (void) scanf("%f%f%f",&x,&y,&z); a = (3 + exp(y) - 1) / (1 + pow(x,2)*abs(y - tan(z))); (void) printf("a = %f\n",a); return 0; } Потом доделаю остальные, а сейчас уже спать хочу... Хотя, такие банальные вещи нужно делать самому, это 1-й курс, если я не ошибаюсь?
Программа генерирует случайное N в заданном промежутке. Программа проверяет все числа от 10 до 999, если произведение цифр числа = N, то цикл будет прерван и программа выдаст число. Иначе сообщит что число не найдено. Code: program PROIZV_ZIFR; var intI,intC,N,Proizv,Code,tmpI:integer; strA:string; begin randomize; N:=random(110); writeln('N randomly set in ',N); intI:=0; for intI:=10 to 999 do begin str(intI,strA); Proizv:=1; for intC:=1 to length(strA) do begin val(strA[intC],tmpI,Code); Proizv:=Proizv*tmpI; end; if Proizv=N then break; end; if intI <> 999 then writeln('chislo(Q) = ',strA,' proizvedenie zifr = ',Proizv,' = ',N,'(N)') else writeln('chislo proizvedenie zifr kotorogo = ',N,' ne naideno'); readln; end. Результат работы: Code: N randomly set in 49 chislo(Q) = 77 proizvedenie zifr = 49 = 49(N) N randomly set in 7 chislo(Q) = 17 proizvedenie zifr = 7 = 7(N) N randomly set in 103 chislo proizvedenie zifr kotorogo = 103 ne naideno
Нужна помощь срочно на Turbo Pascale выручайте плизз!!!!!! Задача 1: Даны координаты точек на плоскости точек ≤30. Найти пары номера точек, расстояние между которыми наибольшее. Задача 2: Дан массив, образовать новый массив состоящий из элементов исходного заканчивающихся на цифру X.
Задача 1: Для корректной работы программы требуется файл 'input.txt' в котором находятся координаты точек (Файл поместить в директорию с TurboPascal, ну или прописать путь при открытии файла). Пример: Code: 3 4 1 1 3 4 1 1 5 3 1 1 2 3 0 0 -1 -1 Code: program RASSTOIANIE_MESHDU_TOCHKAMI; var f:text; intI,intB,intM:integer; MasKorToc:array [1..30,1..2] of integer; tmpI,MaxRast,tmpRast:real; goodToch:array[1..30,1..2] of integer; begin assign(f,'input.txt'); reset(f); intM:=1; while eof(f) = false do begin readln(f,MasKorToc[intM,1],MasKorToc[intM,2]); writeln('Position = ',intM,' X = ',MasKorToc[intM,1],' Y = ',MasKorToc[intM,2]); intM:=intM+1; end; intM:=intM-1; for intI:=1 to intM do begin for intB:=1 to intM do begin tmpI:=(MasKorToc[intI,1]-MasKorToc[intB,1])*(MasKorToc[intI,1]-MasKorToc[intB,1]); tmpRast:=sqrt(tmpI+(MasKorToc[intI,2]-MasKorToc[intB,2])*(MasKorToc[intI,2]-MasKorToc[intB,2])); if tmpRast>MaxRast then begin goodToch[1,1]:=intI; goodToch[1,2]:=intB; MaxRast:=TmpRast; end; end; end; writeln; writeln('Maksimalbnoe rasstoianie mezhdu tochkami: ',goodToch[1,1],' i ',goodToch[1,2]); close(f); readln; end. Результат работы: input.txt: Code: 3 4 1 1 5 3 1 1 2 3 0 0 -1 -1 Code: Position = 1 X = 3 Y = 4 Position = 2 X = 1 Y = 1 Position = 3 X = 5 Y = 3 Position = 4 X = 1 Y = 1 Position = 5 X = 2 Y = 3 Position = 6 X = 0 Y = 0 Position = 7 X = -1 Y = -1 Maksimalbnoe rasstoianie mezhdu tochkami: 3 i 7 input.txt: Code: 6 6 3 4 1 1 5 3 1 1 2 3 0 0 Code: Position = 1 X = 6 Y = 6 Position = 2 X = 3 Y = 4 Position = 3 X = 1 Y = 1 Position = 4 X = 5 Y = 3 Position = 5 X = 1 Y = 1 Position = 6 X = 2 Y = 3 Position = 7 X = 0 Y = 0 Maksimalbnoe rasstoianie mezhdu tochkami: 1 i 7 Задача 2: Code: program MASSIV_ELEMENT_PLUS_X; var Ishod:array [1..10] of string; intI:integer; begin writeln('Ishodnui massiv'); for intI:=1 to 10 do begin str(intI*100,Ishod[intI]); writeln('Element ',intI,' = ',Ishod[intI]); end; writeln; writeln('Preobrazovannui massiv'); for intI:=1 to 10 do begin Ishod[intI]:= Ishod[intI]+'10'; writeln('Element ',intI,' = ',Ishod[intI]); end; readln; end. Code: Результат работы: Ishodnui massiv Element 1 = 100 Element 2 = 200 Element 3 = 300 Element 4 = 400 Element 5 = 500 Element 6 = 600 Element 7 = 700 Element 8 = 800 Element 9 = 900 Element 10 = 1000 Preobrazovannui massiv Element 1 = 10010 Element 2 = 20010 Element 3 = 30010 Element 4 = 40010 Element 5 = 50010 Element 6 = 60010 Element 7 = 70010 Element 8 = 80010 Element 9 = 90010 Element 10 = 100010
Еще задачка на Pascale. Ввод аргумента x, если попал на границу, то вывод сообщения типа: '=0' '100' '=50' '-100' '=-50' Если попал в промежуток, то вывод соответствующего интервала '+1' '-1' '+2' '-2' '+n' '-n'
Помогите найти ошибку Необходимо перехватить прерывание 5h Но процедура Int_05h не выполняется Code: data segment old_cs dw ?; для хранения «старого» вектора old_ip dw ?; прерываний с номером 5h Ubdate db 0; Что нажал пользователь data ends code segment assume cs:code, ds:data start: mov ax,data mov ds,ax call clrscr ; Запомним текущий вектор 5h mov ax, 3505h int 21h mov old_ip, bx mov old_cs, es ; Подменим обработчик push ds ; DS:DX <- Новый обработчик mov dx, offset Int_05h ;mov ax, seg Int_05h ;mov ds, ax mov ax, 2505h int 21h ; Установили его pop ds ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov bx,0 make_delay: mov ah,0 mov al,ubdate test ax,ax jnz ekran jmp nenado ekran: mov ubdate,0 ;действия nenado: jmp make_delay q: ; Восстановливаем все назад push ds mov dx, old_ip mov ax, old_cs mov ds, ax mov ah, 25h mov al, 9h int 21h pop ds mov ax, 4C00h ; И выходим int 21h jmp konec ;//////////////////////////////////////////////////////////////////////////////////////////////////// Int_05h proc cli ;Запрещаем прерывания push ax push bx push cx push dx push si push di push es ;и сегментные регистры push ds mov ubdate,1 pop ds ;Восстановим сохраненные регистры pop es pop di pop si pop dx pop cx pop bx pop ax sti ;Разрешим прерывания iret ;Выход (возврат в прерванное место)... Int_05h endp CLRSCR proc naer ;Очищает экран push ax mov ax, 03 int 10h pop ax ret CLRSCR endp konec: code ends end start
Добрый вечер. В общем задача такая, необходимо записать символ напрямую в видеобуфер на c++ без использрвания asm вставок. Можно ли это сделать в Visual Studio? и где нибудь это можно сделать? =) Желателен пример кода... Заранее спасибо.
Ребят помоги пожалуста решить задачи по Паскалю чесно говоря я в этом не шарю друг попросил решить зачет блин на кону с меня много много плюсов возможно даже денежкой на wmz (баксов 5) отблагодарю чисто символически заранее спасибо ответы в ЛС или в АСЬку скидывайте (в профиле) че блин никому + и денег ненадо что ль первыйй раз такое вижу )
скрины плохо видно! задачи скорее по математики чем по программированию. если пояснишь как решать то сами программы некоторые за час можно написать.
Помогите с UNIX'ом, пожалуйста.. Вот такое задание: Процесс 1 открывает файл и после этого порождает потомка 2. Один процесс пишет в файл один байт, посылает другому процессу сигнал, другой читает из файла один байт, выводит прочитанное на экран и посылает сигнал первому процессу. Организовать N циклов запись/чтение. Буду очень благодарен..и "+" поставлю =)
Паскаль помогите плиз //----------------------- Выполнить табулирование функции в выбранном интервале с шагом h. Сформировать и вывести на экран таблицу значений функции, график функции с координатными осями в графическом режиме. При оформлении отчета построить схему алгоритма только для построения таблицы Пояснения: 1. интервал выбрать самостоятельно, например, от -15 до 15 или от -5 до 10, главное, чтобы в нем присутствовал 0. 2. шаг для табуляции выбрать таким образом, чтобы в таблице было около 15-20 строк (максимум 23, иначе шапка будет не видна). 3. при выводе графика функции шаг выбрать поменьше, например, 0.01, и рисовать его по точкам - в этом случае точки будут ложиться рядом и график будет плавным. 4. при выводе графика использовать тот же интервал, что и в таблице --------------------------- формула номер Адын http://img251.imageshack.us/img251/1218/formulas.jpg //------------------------------
Code: program TABULIR_FUNC; uses graph; var mx,my,x,h:real; intI,x1,x2:integer; gd,gm:integer; function xm(x:real):integer; begin xm:=round(320+mx*x); end; function ym(y:real):integer; begin ym:=round(240-my*x); end; function f(a:real):real; begin f:=2*exp(a)+4; end; procedure linovka; var x,y:integer; begin setcolor(15);{color is white} x:=5;y:=0; repeat {draw vertical line} line(x,0,x,GetMaxY); x:=x+35; until x>GetMaxX; repeat {draw horizontal line} line(0,y,GetMaxX,y); y:=y+30; until y>GetMaxY; end; procedure DrawAxis; begin setcolor(blue);{color is white} {draw axis of ordinate} line(round(GetMaxX/2),0,round(GetMaxX/2),GetMaxY); line(round(GetMaxX/2),0,round(GetMaxX/2-5),10); line(round(GetMaxX/2),0,round(GetMaxX/2+5),10); {draw axis of abscis} line(round(GetMaxX),round(GetMaxY /2),GetMaxX-10,round(GetMaxY/2-5)); line(round(GetMaxX),round(GetMaxY /2),GetMaxX-10,round(GetMaxY/2+5)); line(0,round(GetMaxY/2),GetMaxX,round(GetMaxY/2)); end; begin mx:=10;{Mashtab X} my:=10;{Mashtab Y} h:=0.001; x1:=-10; x2:=10; writeln('Tabulirovanie funkzii'); writeln(' X ','Y'); for intI:=x1 to x2 do writeln(' X = ',intI,' Y = ',f(intI):6:4); writeln('Press any key'); readln; gd:=detect; initgraph(gd,gm,'D:\user\program\bp\bgi'); linovka; DrawAxis; x:=x1; while (x<=x2) do begin putpixel(xm(x),ym(f(x)),red); x:=x+h; end; readln; closegraph; end. Результат работы: Code: Tabulirovanie funkzii X Y X = -10 Y = 4.0001 X = -9 Y = 4.0002 X = -8 Y = 4.0007 X = -7 Y = 4.0018 X = -6 Y = 4.0050 X = -5 Y = 4.0135 X = -4 Y = 4.0366 X = -3 Y = 4.0996 X = -2 Y = 4.2707 X = -1 Y = 4.7358 X = 0 Y = 6.0000 X = 1 Y = 9.4366 X = 2 Y = 18.7781 X = 3 Y = 44.1711 X = 4 Y = 113.1963 X = 5 Y = 300.8263 X = 6 Y = 810.8576 X = 7 Y = 2197.2663 X = 8 Y = 5965.9160 X = 9 Y = 16210.1679 X = 10 Y = 44056.9316 Press any key Ну и график там с осями и разлинованой плоскостью...
Народ помогите пожалуйста! +++ отблагодарю У меня щас олимпиада по инфе Решите плиз данные задачи на одном из языков программированию: Pascal,C/C++,Java, Delphi, Visual C++, FreePascal и еще какие то.. Желательно QuickBasic MS DOS 1) Определить является ли треугольник со сторонами a,b,c равнобедренным. 2) Для надежности некоторый текст был передан по линии связи трижды, но каждый раз ровно один символ был принят в искаженном виде. требуется по трем полученным текстам восстановить исходный текст или установить, что сделать это невозможно. Входные данные: Три текстовые строки длиной не более 255 символов каждая. Выходные данные: Текстовая строка с восстановленным текстом либо сообщение о невозможности восстановления. Щас еще дам.. На все у меня осталось 1,40 ч на решение.. Все это нужно сделать программно
Вот еще: 3) "В помощь юнитам". Утром одного дня на опытной станции взошли два цветка, посеянные накануне. Жизненный цикл одного из них состовляет n дней, а другого - m дней (n,m - натуральные числа, не превосходящие 255). В последний день жизни растение цветет, роняет зерно и умерает. На утро следующего дня из зерна начинает расти такой же цветок. Напишите программу, которая по введенным n и m (в таком порядке), вычисляет, на какой день он начала процесса можно наблюдать цветение обоих растений.
Code: program treug; var a,b,c:real; begin writeln('Enter a'); readln(a); writeln('Enter b'); readln(b); writeln('Enter c'); readln(c); if (a=b and a<>c) then begin writeln('Treyrolinuk ravnobedrenni'); exit; end; if (a=c and b<>c) then begin writeln('Treyrolinuk ravnobedrenni'); exit; end; if (c=b and a<>b) then begin writeln('Treyrolinuk ravnobedrenni'); exit; end; writeln('Treyrolbnik ne ravnobedrennii'); readln; end. Результат работы: Code: Enter a 5 Enter b 5 Enter c 4 Treyrolinuk ravnobedrenni Enter a 4 Enter b 5 Enter c 5 Treyrolinuk ravnobedrenni Enter a 4 Enter b 5 Enter c 4 Treyrolinuk ravnobedrenni Enter a 5 Enter b 5 Enter c 5 Treyrolbnik ne ravnobedrennii Enter a 5 Enter b 4 Enter c 3 Treyrolbnik ne ravnobedrennii
Pascal ;D Чето не так щас поправлю.... Code: program dayxxx; var stday,n,m:byte; mx,nx,intI:longint; begin n:=2; m:=7; if n = m then begin writeln('potrebuets9 ',n,' dney'); readln; exit; end; if n> m then stday:=n else stday:=m; for intI:=stday to 1000000 do begin mx:=intI; nx:=intI; while mx>0 do mx:=mx-m; mx:=mx+m; while nx>0 do nx:=nx-n; nx:=nx+n; writeln('mx ',mx,' nx ',nx); if mx = nx then break; end; writeln('potrebuets9 ',intI-1,' dney'); readln; end. Результат работы: Code: potrebuets9 14 dney
Code: program strreceive; var str:array[1..3] of string; Variaz:array[1..3] of byte; strresult:string; intI:integer; begin str[1]:='root@locaphost'; str[2]:='root.localhost'; str[3]:='root.,ocalhost'; Variaz[1]:=0; Variaz[2]:=0; Variaz[3]:=0; for intI:=1 to length(str[1]) do begin if (str[1][intI]=str[2][intI]) and (str[1][intI]=str[3][intI]) then strresult:=strresult+str[1][intI] else begin if (str[1][intI] = str[2][intI]) and (str[1][intI]<>str[3][intI]) then begin if Variaz[3] = 1 then begin writeln('He mory vosstanovitb stroky'); readln; exit; end; strresult:=strresult+str[1][intI]; variaz[3]:=1; end; if (str[2][intI] = str[3][intI]) and (str[2][intI]<>str[1][intI]) then begin if Variaz[1] = 1 then begin writeln('He mory vosstanovitb stroky'); readln; exit; end; strresult:=strresult+str[3][intI]; Variaz[1]:=1; end; if (str[1][intI] = str[3][intI]) and (str[2][intI]<>str[3][intI]) then begin if Variaz[2] = 1 then begin writeln('He mory vosstanovitb stroky'); readln; exit; end; strresult:=strresult+str[1][intI]; Variaz[2] :=1; end; end; end; writeln('Iskoma9 stroka = ',strresult); readln; end. Результат работы: str[1] := 'root@locaphost'; str[2] := 'ryot@localhost'; str[3] := 'root.locaphost'; Code: Iskoma9 stroka = root@localhost str[1] := 'root@locaphost'; str[2] := 'ry1t@localhost'; str[3] := 'root.locaphost'; Code: He mory vosstanovitb stroky Мне пора идти (Уже опоздал минут на 15), удачи, если че нитак, не надо желать моей смерти ;D