Просмотр полной версии : Студентам с лабораторными сюда
Страницы :
1
2
3
4
5
6
7
[
8]
9
10
11
12
Среда: Паскаль
Задача1: Дано трехзначное число. Найти сумму и произведение его цифр.
задача2: Дан номер некоторого года (целое положительное число). Определить соответствующий ему номер столетия, учитывая, что, к примеру, началом 20 столетия был 1901 год.
помогите решить!
Задача 1:
program SUMMA_I_PROIZVEDENIE;
var
intI,tmpI,Summa,Code,Proizv:integer;
strA:string;
begin
writeln('Vvedite chislo');
readln(intI);
str(intI,strA);
Summa:=0;
Proizv:=1;
for intI:=1 to length(strA) do begin
val(strA[intI],tmpI,Code);
Summa:=Summa+tmpI;
Proizv:=Proizv*tmpI;
end;
writeln('Summa chisel chisla ',strA,' = ',Summa);
writeln('Proizvedenie chisel chisla ',strA,' = ',Proizv);
readln;
end.
Результат работы:
Vvedite chislo
362
Summa chisel chisla 362 = 11
Proizvedenie chisel chisla 362 = 36
Vvedite chislo
4542
Summa chisel chisla 4542 = 15
Proizvedenie chisel chisla 4542 = 160
Задача 2:
program Nom_Stolet;
var
intI,Nomer_Stoletia:integer;
begin
Nomer_Stoletia:=1;
writeln('Vvedite god');
readln(intI);
while intI-100 > 0 do begin
Nomer_Stoletia:=Nomer_Stoletia+1;
intI:=intI-100;
end;
writeln('Nomer stoletia = ',Nomer_Stoletia);
readln;
end.
Результат работы:
Vvedite god
5000
Nomer stoletia = 50
Vvedite god
5001
Nomer stoletia = 51
Программа на TP с элементами массивов.
Ввести 5 целых чисел. Вывести на экран это число (результатирующее), корень этого числа и квадрат этого числа.
program VVOD_CHISLA;
var
intI:array [1..5] of longint;
intA,intB,tmp:integer;
Rezultir:longint;
begin
Rezultir:=0;
for intA:=1 to 5 do begin
writeln('Vvedite zifru nomer ',intA);
readln(intI[intA]);
tmp:=1;
for intB:=1 to 5-intA do tmp:=tmp*10;
Rezultir:=Rezultir+intI[intA]*tmp;
end;
writeln('Eto chislo = ',Rezultir);
writeln('Korenb iz chisla ',Rezultir,' = ',sqrt(Rezultir):6:4);
writeln('Kvadrat chisla ',Rezultir,' = ',sqr(Rezultir));
readln;
end.
Результат работы:
Vvedite zifru nomer 1
0
Vvedite zifru nomer 2
0
Vvedite zifru nomer 3
0
Vvedite zifru nomer 4
2
Vvedite zifru nomer 5
5
Eto chislo = 25
Korenb iz chisla 25 = 5.0000
Kvadrat chisla 25 = 625
Vvedite zifru nomer 1
1
Vvedite zifru nomer 2
6
Vvedite zifru nomer 3
3
Vvedite zifru nomer 4
8
Vvedite zifru nomer 5
4
Eto chislo = 16384
Korenb iz chisla 16384 = 128.0000
Kvadrat chisla 16384 = 268435456
Vvedite zifru nomer 1
1
Vvedite zifru nomer 2
2
Vvedite zifru nomer 3
3
Vvedite zifru nomer 4
4
Vvedite zifru nomer 5
5
Eto chislo = 12345
Korenb iz chisla 12345 = 111.1081
Kvadrat chisla 12345 = 152399025
Слишком большие числа лучше не писать. Диапазон Longint [-2147483648 .. 2147483647]
Syntaxys
07.10.2009, 20:18
Задача 2. Нуб'с вариант:
Program Neprogram;
Var vek,god: integer;
BEGIN
writeln('Vvedite god');
readln(god);
if god mod 10 = 0 then
BEGIN
vek:= god div 100;
writeln(vek,' stoletie');
writeln
End
ELSE
Begin
vek:= god div 100 + 1;
writeln(vek,' stoletie');
writeln;
End
END.
Результат работы:
Vvedite god
1900
19 stoletie
Vvedite god
1991
20 stoletie
Задача 1:
program Neprogram;
Var number,summ,proiz:integer;
BEGIN
writeln('Vvedite chslo');
readln (number);
if number div 100 > 0 then
if number div 100 < 10 then
Begin
summ:= (number div 100) + (number mod 100 div 10) + (number mod 100 mod 10);
proiz:= (number div 100) * (number mod 100 div 10) * (number mod 100 mod 10);
writeln('Summa chisel = ',summ);
writeln('Proizvedenie chisel = ',proiz);
End
else
writeln('Nevernoe chislo')
else
writeln('Nevernoe chislo');
END.
Результат работы:
Vvedite chslo
99
Nevernoe chislo
Vvedite chslo
55555
Nevernoe chislo
Vvedite chslo
123
Summa chisel = 6
Proizvedenie chisel = 6
Vvedite chslo
567
Summa chisel = 18
Proizvedenie chisel = 210
Программа на TP с элементами массивов. :)
Ввести 5 целых чисел. Вывести на экран это число (результатирующее), корень этого числа и квадрат этого числа.
uses crt;
var mas:array[1..5] of byte;
i:byte;
x,cod:integer;
er,num:string;
Begin
clrscr;
for i:=1 to 5 do
begin write('Input ',i,' num:'); readln(mas[i]); end;
clrscr;
num:='';
for i:=1 to 5 do begin
Str(mas[i],er);
num:=num+er; end;
val(num,x,cod);
writeln ('Num: ',x);
writeln ('Sqr: ',Sqr(x));
writeln ('Sqrt: ',Sqrt(x):2:2);
readkey;
End.
помогите с лабораторкой пожжалуста горю
нужна реализация на Visual С++
дан массив из 10000 элементов типа double заполнить его гнератором случайных чисел
и вычислить сумму с минимальной погрешностью.
с меня репа сколько смогу
#include <iostream>
#include <time.h>
using namespace std;
void main(void)
{
double MyArray[10000];
double Summ;
int intI;
setlocale(0,"");
srand((unsigned double)time(0));
intI=1;
while (intI<=10000)
{
MyArray[intI]=rand()%10; // Генерируем случайные числа от 0 до 9
Summ = Summ+MyArray[intI];
++intI;
}
cout << "Сумма всех чисел = " << Summ << endl;
system("pause");
}
Результат работы:
Сумма всех чисел = 45335
Для продолжения нажмите любую клавишу . . .
Помогите пожалуйста.Нужно сделать лабораторную..Очень срочно.
Задание:
Создать программы на языках Паскаль и С для обчисления математического примера.Розработать математическую постановку задач и сложыть программы на языках паскаль и Сдля ращета значения.
Оставляйте свой вебмани ил ид вконтакте,одблагодарю)
Кто сможет ,стучите- 49003757пять
задание- http://pic.co.ua/en/view/4f4fc18a242c5f13a80a5ed72e2fe51f/
Методичка на укр.- http://www.sharemania.ru/0192768
Spider545
09.10.2009, 21:11
Помогите сделать в C++ Builder
вот такое задание:
1. Реализовать стек при помощи массива. Тип данных стека - int. Со стеком должны выполняться стандартные операции:
1) Push – добавление элемента в стек;
2) Pop – удаление элемента из стека (с выдачей значения удаляемого элемента);
3) Выдача значения верхнего элемента;
4) Очистка стека;
5) Печать количества элементов стека.
2. Реализовать очередь при помощи указателей. Тип данных очереди – int. С очередью должны выполняться стандартные операции:
1) Добавление элемента в очередь;
2) Удаление элемента из очереди (с выдачей значения исключаемого элемента);
3) Выдача значения первого элемента;
4) Очистка очереди;
5) Выдача количества элементов очереди.
Ну пожаааааааааалуста, очень надо((((
Nizhegorodets
09.10.2009, 22:36
Язык : Pascal
"Произведение цифр"
найти минимальное положительное целое число Q такое, что произведение цифр числа Q в точности равняется N.
Целое число N (0 ≤ N ≤ 109).
Пример:
исходные данные:результат
10:25
12:26
Прошу подсказать алгоритм решения.Заранее спасибо.
Помогите пожалуйста.Нужно сделать лабораторную..Очень срочно.
Задание:
Создать программы на языках Паскаль и С для обчисления математического примера.Розработать математическую постановку задач и сложыть программы на языках паскаль и Сдля ращета значения.
Оставляйте свой вебмани ил ид вконтакте,одблагодарю)
Кто сможет ,стучите- 49003757пять
задание- http://pic.co.ua/en/view/4f4fc18a242c5f13a80a5ed72e2fe51f/
Методичка на укр.- http://www.sharemania.ru/0192768
LAB1.C
#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-й курс, если я не ошибаюсь?
Язык : Pascal
"Произведение цифр"
найти минимальное положительное целое число Q такое, что произведение цифр числа Q в точности равняется N.
Целое число N (0 ≤ N ≤ 109).
Пример:
исходные данные:результат
10:25
12:26
Прошу подсказать алгоритм решения.Заранее спасибо.
Программа генерирует случайное N в заданном промежутке. Программа проверяет все числа от 10 до 999, если произведение цифр числа = N, то цикл будет прерван и программа выдаст число. Иначе сообщит что число не найдено.
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.
Результат работы:
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
>>serhio<<
10.10.2009, 17:36
Нужна помощь срочно на Turbo Pascale выручайте плизз!!!!!!
Задача 1:
Даны координаты точек на плоскости точек ≤30. Найти пары номера точек, расстояние между которыми наибольшее.
Задача 2:
Дан массив, образовать новый массив состоящий из элементов исходного заканчивающихся на цифру X.
Нужна помощь срочно на Turbo Pascale выручайте плизз!!!!!!
Задача 1:
Даны координаты точек на плоскости точек ≤30. Найти пары номера точек, расстояние между которыми наибольшее.
Задача 2:
Дан массив, образовать новый массив состоящий из элементов исходного заканчивающихся на цифру X.
Задача 1:
Для корректной работы программы требуется файл 'input.txt' в котором находятся координаты точек (Файл поместить в директорию с TurboPascal, ну или прописать путь при открытии файла).
Пример:
3 4
1 1
3 4
1 1
5 3
1 1
2 3
0 0
-1 -1
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:
3 4
1 1
5 3
1 1
2 3
0 0
-1 -1
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:
6 6
3 4
1 1
5 3
1 1
2 3
0 0
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:
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.
Результат работы:
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
>>serhio<<
11.10.2009, 16:05
Еще задачка на Pascale.
Ввод аргумента x, если попал на границу, то вывод сообщения типа:
'=0' '100'
'=50' '-100'
'=-50'
Если попал в промежуток, то вывод соответствующего интервала
'+1' '-1'
'+2' '-2'
'+n' '-n'
Prototype
12.10.2009, 20:42
Необходимо перехватить прерывание 5h
Но процедура Int_05h не выполняется
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? и где нибудь это можно сделать? =) Желателен пример кода...
Заранее спасибо.
satana8920
13.10.2009, 01:46
чесно говоря я в этом не шарю друг попросил решить зачет блин на кону :)
http://s09.radikal.ru/i182/0910/17/db8ee240bde4.jpg (http://www.radikal.ru)
http://s11.radikal.ru/i184/0910/1f/5acb6f505510.jpg (http://www.radikal.ru)
с меня много много плюсов возможно даже денежкой на wmz (баксов 5) отблагодарю чисто символически
заранее спасибо ответы в ЛС или в АСЬку скидывайте (в профиле)
че блин никому + и денег ненадо что ль первыйй раз такое вижу )
чесно говоря я в этом не шарю друг попросил решить зачет блин на кону :)
с меня много много плюсов возможно даже денежкой на wmz (баксов 5) отблагодарю чисто символически
заранее спасибо ответы в ЛС или в АСЬку скидывайте (в профиле)
че блин никому + и денег ненадо что ль первыйй раз такое вижу )
скрины плохо видно! задачи скорее по математики чем по программированию. если пояснишь как решать то сами программы некоторые за час можно написать.
satana8920
14.10.2009, 08:41
Иван8 контакт в ПМ пиши все обьясню
Помогите с 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
//------------------------------
Паскаль
помогите плиз
//-----------------------
Выполнить табулирование функции в выбранном интервале с шагом h. Сформировать и вывести на экран таблицу значений функции,
график функции с координатными осями в графическом режиме.
При оформлении отчета построить схему алгоритма только для построения таблицы
Пояснения:
1. интервал выбрать самостоятельно, например, от -15 до 15 или от -5 до 10, главное, чтобы в нем присутствовал 0.
2. шаг для табуляции выбрать таким образом, чтобы в таблице было около 15-20 строк (максимум 23, иначе шапка будет не видна).
3. при выводе графика функции шаг выбрать поменьше, например, 0.01, и рисовать его по точкам - в этом случае точки будут
ложиться рядом и график будет плавным.
4. при выводе графика использовать тот же интервал, что и в таблице
---------------------------
формула номер Адын
http://img251.imageshack.us/img251/1218/formulas.jpg
//------------------------------
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.
Результат работы:
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
Ну и график там с осями и разлинованой плоскостью...
winlogon.exe
15.10.2009, 12:28
Народ помогите пожалуйста! +++ отблагодарю
У меня щас олимпиада по инфе
Решите плиз данные задачи на одном из языков программированию: Pascal,C/C++,Java, Delphi, Visual C++, FreePascal и еще какие то.. Желательно QuickBasic MS DOS
1) Определить является ли треугольник со сторонами a,b,c равнобедренным.
2) Для надежности некоторый текст был передан по линии связи трижды, но каждый раз ровно один символ был принят в искаженном виде.
требуется по трем полученным текстам восстановить исходный текст или установить, что сделать это невозможно.
Входные данные:
Три текстовые строки длиной не более 255 символов каждая.
Выходные данные:
Текстовая строка с восстановленным текстом либо сообщение о невозможности восстановления.
Щас еще дам.. На все у меня осталось 1,40 ч на решение..
Все это нужно сделать программно
winlogon.exe
15.10.2009, 12:34
Вот еще:
3) "В помощь юнитам". Утром одного дня на опытной станции взошли два цветка, посеянные накануне. Жизненный цикл одного из них состовляет n дней, а другого - m дней (n,m - натуральные числа, не превосходящие 255). В последний день жизни растение цветет, роняет зерно и умерает. На утро следующего дня из зерна начинает расти такой же цветок. Напишите программу, которая по введенным n и m (в таком порядке), вычисляет, на какой день он начала процесса можно наблюдать цветение обоих растений.
1) Определить является ли треугольник со сторонами a,b,c равнобедренным.
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.
Результат работы:
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
winlogon.exe
15.10.2009, 13:11
какой язык программирования?
Pascal ;D
Вот еще:
3) "В помощь юнитам". Утром одного дня на опытной станции взошли два цветка, посеянные накануне. Жизненный цикл одного из них состовляет n дней, а другого - m дней (n,m - натуральные числа, не превосходящие 255). В последний день жизни растение цветет, роняет зерно и умерает. На утро следующего дня из зерна начинает расти такой же цветок. Напишите программу, которая по введенным n и m (в таком порядке), вычисляет, на какой день он начала процесса можно наблюдать цветение обоих растений.
Чето не так щас поправлю....
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.
Результат работы:
potrebuets9 14 dney
winlogon.exe
15.10.2009, 13:39
ага спасибо..) Отблагодарю как смогу. Еще будет?
2) Для надежности некоторый текст был передан по линии связи трижды, но каждый раз ровно один символ был принят в искаженном виде.
требуется по трем полученным текстам восстановить исходный текст или установить, что сделать это невозможно.
Входные данные:
Три текстовые строки длиной не более 255 символов каждая.
Выходные данные:
Текстовая строка с восстановленным текстом либо сообщение о невозможности восстановления.
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';
Iskoma9 stroka = root@localhost
str[1] := 'root@locaphost';
str[2] := 'ry1t@localhost';
str[3] := 'root.locaphost';
He mory vosstanovitb stroky
Мне пора идти (Уже опоздал минут на 15), удачи, если че нитак, не надо желать моей смерти ;D
условие задачи смахивает на нахождение НОК =)
winlogon.exe
15.10.2009, 14:06
Блин.. я уже сдлал все а ты исправил..(( Напиши мне в аську.. отблагодарю чем нить :D
Ребят мне нужно написать прогу на C++. Программа должна объеденять два упорядоченных по возрастанию массива в один, также упорядоченный по возрастанию!(первый и второй массив заполняются с клавиатуры)
Например:
x[]={1,2,3}
y[]={4,5,6}
z-массив должен получиться после склеивания {1,2,3,4,5,6}
2 krewger
#include <iostream> //библиотека потокового ввода/вывода
#include <conio.h> //нужно для использования getch()
using namespace std;//для работы iostream нам нужно выбрать пространство имён std
int main(){
int i,j,a,b,p;
cout << "BBeguTE pa3Mep MACCuBA X"<<endl;
cin >> a;
cout << "BBeguTE pa3Mep MACCuBA Y"<<endl;
cin >> b;
int X[a];
int Y[b];
int Z[a+b];
cout << "BBeguTE E/|EMEHTb| MACCuBA X"<<endl;
for(i=0;i<a;i++){
cin >> X[i];}
cout << "BBeguTE E/|EMEHTb| MACCuBA Y"<<endl;
for(i=0;i<b;i++){
cin >> Y[i];}
//Вносим элементы массивов Х и Y в массив Z
for(i=0;i<a;i++){
Z[i]=X[i];}
for(i=0;i<b;i++){
Z[i+a]=Y[i];}
//Сортируем массив Z пузырьковым методом (см.Пузырьковая сортировка)
for(j=0;j<(a+b);j++){
for(i=0;i<(a+b);i++){
if(Z[i]>Z[i+1]){
p=Z[i];
Z[i]=Z[i+1];
Z[i+1]=p;
}
}
}
//Выводим получившийся массив на экран
for(i=0;i<(a+b);i++){
cout << Z[i] << " ";}
getch();//Ожидание нажатия любой клавиши
return 0;
}
П.С. Метод пузырьковой сортировки самый простейший (не оптимизированный)
Ассемблер Для ДОС
1. Разработать программу реализующую указанную формулу, исполнить программу с несколькими ( три - четыре) наборами исходных данных, проверить правильность результатов.
Х= 3(А - 2В) +50 – С / 2
2. Найти наименьшее среди положительных чисел. Массив слов.
3. Дан массив из 6 байт. Посчитать количество байт, число единиц в которых не превышает 3.
4. Ввести с клавиатуры строку. Преобразовать все буквы в числа. По-строить криптограмму (вместо букв вывести на экран соответствующие им числа).
5. Разработать подпрограмму, которая преобразует заданное десятичное число в двоичную систему. Разработать программу, которая вводит с клавиатуры строку десятичных цифр и выводит на экран её эквивалент в двоичной системе. Если строка не является числом, то сообщает об этом.
Сам знаю что ничего сложного, но блин срочная командировка в Москву((
C++
нужна программа для перевода в разные системы счисления - десятиричная, двоичная, шестнадцатиричная. кто-нибудь поможет?
C++
нужна программа для перевода в разные системы счисления - десятиричная, двоичная, шестнадцатиричная. кто-нибудь поможет?
Держи
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
#pragma hdrstop
//------------------------------------------------
#pragma argsused
int CharToInt(char alpha)
{
if(alpha<58 )
return alpha - 48;
else
return alpha - 55;
}
int ConvertToDec(char *input , int sinp )
{
int sum = 0;
int pow = 1;
for(int i = strlen(input)-1; i>=0; i--)
{
sum+=CharToInt(input[i]) * pow;
pow*=sinp;
}
return sum ;
}
char *convertX(int input, int sout, char *out)
{
while(input!=0)
{
double j = input%sout;
input/=sout;
out--;
if(j<10)
*out = 48 + j;
else
*out = 55 + j;
}
return out;
}
int main(int argc, char* argv[])
{
printf("Vvedite iszhodnoe chislo: " );
char input[32] = "";
scanf("%s", &input);
printf("\nVvedite nachalnuiu codirovku: ");
int sinp;
scanf("%i", &sinp);
printf("\nVvedite conechnuiu codirovku: ");
int sout;
scanf("%i", &sout);
printf("\n\n= ");
char output[32];
output[31] = 0;
printf("%s", convertX(ConvertToDec(input, sinp), sout, output+31));
printf("\n\nNazsmite ljubuju klavisu...");
getch();
return 0;
}
Переводит из любой системы счисления в любую,
даже больше 16ичной(начинают использоваться буквы G H I и т.д. )
Сначала вводим число,затем его начальную систему счисления,затем в какую надо перевести.
jecka3000
17.10.2009, 18:05
нужно написать программу на си шарпе:
Вывести на экран все натуральные числа из диапазона от A до B, сумма цифр которых равна S. При отсутствии чисел с указанными свойствами выдать на экран сообщение “Требуемых чисел нет”. Границы диапазона A и B и заданную сумму цифр S ввести с клавиатуры
Знаю, что не очень сложная...но всё же...))
jecka3000
18.10.2009, 12:22
задача все еще актуальна....)
Syntaxys
18.10.2009, 13:08
Имеется программа:
Program TitanovieIaica;
Var chislo,i,vivod,number,delit,kolvo:integer;
Begin
vivod:=0; //вывод целого числа, показывающего номера полож членов послед
i:=1; //счетчег
delit:=1; //делитель для разбиения числа
kolvo:=1; //переменная для счетчика цифр
repeat //цикл для ввода цифр последовательности
writeln('Vvedite chislo posledovatelnosti:');
readln(chislo); //вводим число
if chislo>0 then //проверка - положительное ли число, если да, то
Begin
vivod:=vivod*10+i; //тут формируем число ,В котором каждая циыра - номер положительного члена последов.
End;
i:=i+1; //этим счетчиком определяется номер полож. члена в последов.
until chislo=0; //если член последов = 0, то завершаем ввод
if vivod>10 then //если чисел было больше чем 1, то
Begin
number:=vivod; //присваиваем переменной для подсчета кол-ва цифр знач. числа с номерами членов
while number>10 do //пока число >10 выполняем:
Begin
number:=number div number; //целочисленное деление на 10
kolvo:=kolvo+1; //подсчет количества цифр
end;
repeat
delit:=delit*10; //считаем первый делитель
kolvo:=kolvo-1;
until kolvo=1;
End
else writeln('Nomer posledovatelnosti:',vivod);// если число было1, то выводим его
while vivod>10 do //тут разбиваем число с нормерами членов последовательности на цифры если оно больше 10
begin
write(vivod div delit, ' ');//выводим член последовательности
vivod:=vivod mod delit; //убираем из числа выведенную цифру
delit:=delit div 10; //убираем из делителя 0
end;
write(vivod); //выводим последнюю цифру числа
END.
Результат:
Vvedite chislo posledovatelnosti:
12
Vvedite chislo posledovatelnosti:
12
Vvedite chislo posledovatelnosti:
12
Vvedite chislo posledovatelnosti:
12
Vvedite chislo posledovatelnosti:
2
Vvedite chislo posledovatelnosti:
0
1234 5
Как сделать не используя стринги, чтобы отображалось так:
Результат:
Vvedite chislo posledovatelnosti:
12
Vvedite chislo posledovatelnosti:
12
Vvedite chislo posledovatelnosti:
12
Vvedite chislo posledovatelnosti:
12
Vvedite chislo posledovatelnosti:
2
Vvedite chislo posledovatelnosti:
0
1 2 3 4 5
:confused:
>>serhio<<
18.10.2009, 18:21
Задачка на Turbo Pascale помогите осилить.
Задание:
Разработать программу табулирования функций для произвольного диапазона изменения независимого параметра или аргумента.Выполнить расчет для использованных исходных значенийж: х=1-2*cos(a*y)+ln(y), a=log2(y),y є [П;2*П] ∆y=П/4
Результаты вывести в следующем виде:
Значение аргумента,значение вспомагательной функции и результата.
В программу включить ввод исходных данных и проверку диапазона от -100 до 100.Начальное значение меньше конечного, шаг разности от начального и конечного.
Прошу помогите с двумя лабами!
2. Список.
НОВЫЕ ПОНЯТИЯ: шаблон, понятие итератора.
Реализовать динамический список элементов типа T (T -- параметр).
Реализовать:
[на "тройку"] минимальный набор:
операции вставки элемента в начало и конец списка; удаления первого и последнего элемента; деструктор, освобождающий всю выделенную память; запретить использование конструктора копирования и оператора присваивания.
[на "четвёрку"] возможность перебора элементов:
класс-итератор, перебирающий элементы списка при вызове оператора ++
[на "пятёрку"] копирование списков:
корректно работающие конструктор копирования и оператор присваивания.
-----------------------------------------------------------------------------
3. Символьное дифференцирование.
НОВЫЕ ПОНЯТИЯ: наследование, виртуальные методы.
[на "тройку"]
Реализовать абстрактный класс Expression с чисто виртуальными методами Expression *diff(); void print(); реализовать классы Number, Variable, Add (сумма), Sub (разность) с реализациями операции diff (дифференцирование) и print (печать на экран).
Пример:
Expression *e = new Add(new Number(1), new Variable('x'));
e->print();
std::cout << "\n";
Expression *de = e->diff();
de->print();
std::cout << "\n";
delete e;
delete ed;
[на "четвёрку"]
Реализовать классы Mul (произведение), Div (частное), при желании функции типа Sin, Cos и т.п.
[на "пятёрку"]
Реализовать чтение выражения из строки с автоматическим созданием необходимых объектов.
Пример:
Expression *e = read_expression("(x+1)*x");
>>serhio<<
19.10.2009, 00:01
Помогите разобраться плиз, а то постоянно ошибки выдает и если второе условие не выполняется то должно выводится соответствующее сообщение:
program primer;
var
f,x:real;
begin
writeln('Vvedite luboe chislo');
writeln('x=');
readln(x);
if x > 0 then
begin
f := exp (3*ln(x)) / sqrt(3) - exp (x) * abs (ln (exp (3*ln(1,37)))) + exp(3*ln(x)) + 4/3;
writeln ('f=',f);
end;
if x < = 0 then
begin
writeln ('else');
f := ( exp (3*ln(x))) + sqrt (7)) / cos (x - 2 * Pi) - abs ( ln (exp (3*ln(x)))) + 4 * (sin(x)/cos(x));
writeln ('f=',f);
writeln ('Uslovie ne vipolnaetsa');
end;
readln;
end.
AquaKlaster
19.10.2009, 00:22
Вот попробуй так:
program primer;
var
f,x:real;
begin
writeln('Vvedite luboe chislo');
writeln('x=');
readln(x);
if x > 0 then
begin
f := exp (3*ln(x)) / sqrt(3) - exp (x) * abs (ln (exp (3*ln(1.37)))) + exp(3*ln(x)) + (4/3);
writeln ('f=',f);
end;
if x <= 0 then
begin
writeln ('else');
f := ( exp (3*ln(x))) + sqrt (7) / cos (x - 2 * Pi) - abs ( ln (exp (3*ln(x)))) + 4 * (sin(x)/cos(x));
writeln ('f=',f);
writeln ('Uslovie ne vipolnaetsa');
end;
readln;
end.
Нужны было подправить несколько логических ошибок
>>serhio<<
19.10.2009, 00:24
Все так только нужно чтобы при вводе о или какого нибудь отрицательнного числа ошибка невыскакивала.А появлялось сообщение что условие невыполняется!
AquaKlaster
19.10.2009, 00:37
По гугли на тему ошибки Invalid Floating Point Operation
>>serhio<<
19.10.2009, 01:20
Нужно реализовать на Pascale. Найти сумму всех чисел из промежутка а и b кратных из 13 и 5 .
ichechen
19.10.2009, 02:04
Нужно реализовать на Pascale. Найти сумму всех чисел из промежутка а и b кратных из 13 и 5 .
Я на Паскале не "бум-бум", но вроде бы так:
program atob;
uses CRT;
var a,b,n1,n2,i,sum:integer;
begin clrscr;
writeln('Vvedite chislo a ');
readln(a);
writeln('Vvedite chislo b ');
readln(b);
n1:=13; n2:=5;
for i:=a to b do
begin if ((i mod n1)=0) AND ((i mod n2)=0) Then
sum:=sum+i;
end;
writeln('summa ravna => ' , sum);
readln(i);
end.
jecka3000
19.10.2009, 19:03
Вывести на экран все натуральные трехзначные и пятизначные числа из диапазона от A до B, значение которых кратно 13. При отсутствии чисел с указанными свойствами выдать на экран сообщение “Требуемых чисел нет”. Границы диапазона A и B ввести с клавиатуры.
язык - си шарп.
Буду очень благодарен
jecka3000
19.10.2009, 20:28
вот мой код, но он очень странно пашет, постоянно выводит 1000
int a, b, tr, pt,ost1,ost2,ml,st;
Console.WriteLine("Введите начало диапа,а");
a = int.Parse(Console.ReadLine());
Console.WriteLine("Введите конец диапазона,в");
b = int.Parse(Console.ReadLine());
for (a = a; a <= b; a++)
for( ml=1;ml<=9;ml++)
for (st = 0; st <= 9; b++)
{
tr = 100 * ml + st;
pt = 10000 * ml + st;
ost1 = tr % 13;
ost2 = pt % 13;
if (ost1 == 0)
if (ost2 == 0)
Console.WriteLine(tr);
Console.WriteLine(pt);
else
Console.WriteLine("таких чисел нет"!);
}
Console.ReadLine();
парни, срочно, помогите!)
BrainDeaD
19.10.2009, 20:32
class Program
{
static void Main(string[] args)
{
int k = 0;
Console.WriteLine("Minimum: ");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("Maximum: ");
int b = int.Parse(Console.ReadLine());
if (a <= b)
{
for (int i = a; i <= b; i++)
{
if ((i % 13 == 0) && ((i>=100 && i<=999) || (i>=10000 && i<=99999)))
{
Console.WriteLine(i);
k++;
}
}
if (k < 1)
{
Console.WriteLine("No recuired Numbers");
}
}
else Console.WriteLine("Minimum is bigger then Maximum");
Console.ReadLine();
}
}
}
jecka3000
19.10.2009, 22:39
и все таки последнюю задачу из 10 осилить никак не могу... прошу Вашей помощи. (язык все тот же - си шарп)
Для всех натуральных чисел из диапазона от A до B вывести на экран сами числа и сумму цифр, находящихся на нечетных позициях. Номера позиций отсчитываются с единицы, начиная с младшей цифры. Границы диапазона A и B ввести с клавиатуры.
Nikituki
19.10.2009, 22:46
и все таки последнюю задачу из 10 осилить никак не могу... прошу Вашей помощи. (язык все тот же - си шарп)
Для всех натуральных чисел из диапазона от A до B вывести на экран сами числа и сумму цифр, находящихся на нечетных позициях. Номера позиций отсчитываются с единицы, начиная с младшей цифры. Границы диапазона A и B ввести с клавиатуры.
Я же вроде тебе в этом посте (http://forum.antichat.ru/showpost.php?p=1610393&postcount=280) написал, как посчитать сумму цифр числа на нечетных позициях. Дополнить для всех натуральных чисел из диапазона - элементарно...
BrainDeaD
19.10.2009, 23:52
и все таки последнюю задачу из 10 осилить никак не могу... прошу Вашей помощи. (язык все тот же - си шарп)
Для всех натуральных чисел из диапазона от A до B вывести на экран сами числа и сумму цифр, находящихся на нечетных позициях. Номера позиций отсчитываются с единицы, начиная с младшей цифры. Границы диапазона A и B ввести с клавиатуры.
если я правильно понял условие, то вот:
class Program
{
static void Main(string[] args)
{
int c=0;
Console.WriteLine("Minimum: ");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("Maximum: ");
int b = int.Parse(Console.ReadLine());
Console.WriteLine("\n");
if (a <= b)
{
for (int i = a; i <= b; i++)
{
String num = i.ToString();
Console.WriteLine(num);
for (int k = 0; k < num.Length; k++)
{
if (k % 2 == 0)
{
c += int.Parse(Convert.ToString(num[k]));
}
}
}
}
Console.WriteLine("Summa: " + c);
Console.ReadLine();
}
}
на пример если числа 23-25, то прога берёт числа нечет. позиций - это три двойки и суммирует, = 6
Задание:
Создать программы на языке Паскаль для обчисления математического примера.Розработать математическую постановку задач и сложыть программу на языке паскаль для ращета значения.
задание- http://pic.co.ua/en/
Написал но не запускается.(((Подскажите что не так(если можно отредактируйте)
uses crt;
var
a,x,z:real;
begin
clrscr;
writeln('x=');
readln(x);
write('z=');
readln(z);
begin
a:=(3+exp(y)-1)/(1+sqr(x)*abs(y-sin(z)/cos(z)))
end
Извените ,правильно вставлять код не умею(
Помогите пожалуйста!Очень срочно нужно.Буду очень благодарен откликнувшимся.
Задание:
Розработать матиматическую постановку задачи и сложить программы на языках Паскаль и Си для перещета координат точки с полярной системы в декартовую.
Nikituki
20.10.2009, 23:48
(если можно отредактируйте)
Так должно работать
uses crt;
var
a,x,z:real;
begin
clrscr;
writeln('x=');
readln(x);
write('z=');
readln(z);
a:=(3+exp(y)-1)/(1+sqr(x)*abs(y-sin(z)/cos(z)));
end.
Задание:
Язык реализации: Delphi
Есть текстовый файл. Структура:
Вопрос №1
1) Ответ №1
2) Ответ №2
3) Ответ №3
Вопрос №2
1) Ответ №1
2) Ответ №2
3) Ответ №3
Вопрос №3
1) Ответ №1
2) Ответ №2
3) Ответ №3
Вопрос №4
1) Ответ №1
2) Ответ №2
3) Ответ №3
Вопрос №5
1) Ответ №1
2) Ответ №2
3) Ответ №3
Всего 20 заданий по 20 вопросов.
Их разбивать – 4 варианта по 5 вопросов.
1 вариант – 5 вопросов
Далее из этих 4-х нужно сделать 16 (методом копипаста) Т.е:
1-ый --> 5-ый --> 9-ый --> 13-ый
2-ой --> 6-ой --> 10-ый --> 14-ый
3-ий --> 7-ой --> 11-ый --> 15-ый
4-ый --> 8-ой --> 12-ый --> 16-ый
Тектовые файлы должны хранится по темам:
Тема 1 (папка)
1-ый вар-ант.txt
2-ой вар-ант.txt
3-ий вар-ант.txt
4-ый вар-ант.txt
5-ый вариант.txt
6-ой вариант.txt
7-ой вариант.txt
8-ой вариант.txt
9-ый варинат.txt
10-ый вариант.txt
11-ый вариант.txt
12-ый варинат.txt
13-ый вариант.txt
14-ый вариант.txt
15-ый вариант.txt
16-ый вариант.txt
Тема 2 (папка)
1-ый вар-ант.txt
2-ой вар-ант.txt
3-ий вар-ант.txt
4-ый вар-ант.txt
5-ый вариант.txt
6-ой вариант.txt
7-ой вариант.txt
8-ой вариант.txt
9-ый варинат.txt
10-ый вариант.txt
11-ый вариант.txt
12-ый варинат.txt
13-ый вариант.txt
14-ый вариант.txt
15-ый вариант.txt
16-ый вариант.txt
При запуске проги должен быть вывод:
Выберите тему для тестирования:
Тема 1
Тема 2
…
Тема 20
Выберите вариант:
Вариант 1
Вариант 2
Вариант 3
…
Вариант 16
В конце должен быть вывод:
Правильных ответов: х (максимум 5)
Не правильных ответов: y (максимум 5)
P.S вариантов может быть 2-а
Вот такая вот задачка.
Ребята, нужна помощь, такое задание
Язык реализации Си
Написать функцию Dohod, что считует доход по вкладу. Выходными даними есть: величина вклада, процентная ставка (годовых) и строк вклада (количество дней).
Буду весьма признателен. ;)
Ребята, нужна помощь, такое задание
Язык реализации Си
Написать функцию Dohod, что считует доход по вкладу. Выходными даними есть: величина вклада, процентная ставка (годовых) и строк вклада (количество дней).
Буду весьма признателен. ;)
void dohod(double L, double p,int d){
double s=0;
s=L*((p/364)*d);
cout << endl << "Polucenai ssuma: " << s;
}
SeoLapot
22.10.2009, 03:45
Помогите срочно, надо написать на с++!
Написать сие дело надо до 22 октября 12:00-13:00 по МСК!
Помогите, пожалуйста, пообещал девушке прогу написать, но не получилось! А ей эту прогу завтра как часть лабы сдавать :(
Отблагодарю чем смогу!!!
Вывести функцию y=f(x) при помощи ряда и вывести её значения при (а меньше или равно х меньше или равно b) с шагом Hx. Суммирование ряда длится до тех пор, пока член, который прибавляется больше чем E=10^-6 (10 в степени минус 6). Подсчитать количество вычисленных членов ряда для x=b.
Собсна само выражение.
http://pic.ipicture.ru/uploads/091022/cZz6tWHOUb.gif
Господа!Буду очень благодарен за любую предоставленную помощь в решении вот этой задачи:
№3.Дано предложение,в конце которого стоит точка.Слова отделены друг от друга одним или несколькими пробелами.Найти максимальную длину слов в данном предложении.
Язык программирования желательно С++ либо Pascal
xxxxxxxxxxxxxxx
22.10.2009, 20:19
#include<string>
#include<iostream>
#include<fstream>
#include<cstdlib>
#define SYMBOLS 0
#define WORDS 1
#define STRINGS 2
#define NSTRING 3
#define NWORD 4
#define OVERLEN 5
using namespace std;
int main(int argc, char **argv){
int i, j, cc;
char buf[1001];
long count[6]={
-1, // count[ SYMBOLS ] - кол-во символов в файле
0, // count[ WORDS ] - кол-во слов
0, // count[ STRINGS ] - кол-во строк
0, // count[ NSTRING ] - номер строки в кот-ой самое длинное слово
0, // count[ NWORD ] - номер слова кот-е явл-ся самым длинным
0 //count[ OVERLEN ] - длина самого длинного слова
};
fstream f;
f.open(argv[1], ios::in | ios::out);
if( !f ){
cout<<"Cannot open file : "<<argv[1]<<endl;
exit(1);
}
f.seekp( 0, ios::beg);
while(!f.eof()){
f.getline(buf,1000);
puts(buf);
if(strlen(buf) >0 ) ++count[STRINGS]; // строки
else continue;
for(i=0, j=0; i<= strlen(buf); ++i, ++j ){
if(buf[i]==' ' || buf[i]=='\t'|| buf[i]=='\n' || buf[i]=='\0' ){
for( ; i<=strlen(buf) && (buf[i] ==' ' || buf[i]=='\t'); ++i );
if(i>0){
++count[WORDS]; // слова
}
if(j>count[OVERLEN]){
count[NWORD] = count[WORDS];
count[NSTRING] = count[STRINGS];
count[OVERLEN] = j;
}
j=0;
}
}
count[SYMBOLS] +=i;
}
cout<<"SYMBOLS: "<<count[SYMBOLS]<<endl;
cout<<"WORDS: "<<count[WORDS]<<endl;
cout<<"STRINGS: "<<count[STRINGS]<<endl;
return 0;
}
StealthMaster
24.10.2009, 02:38
Всем доброго времени суток.
В качестве лабораторной задали написать программу, которая осуществляет действия шифровальной машины Энигма. С отличиями в том, что в качестве алфавита используются не 26 букв латиницы, а 64 символа: 33 русских буквы плюс дополнительно введенные символы. Я написал шифрование и расшифровку.
Проблема в том, что еще нужно осуществить дешифровку сообщений. Правда есть несколько оговорок: не используется "коммутационная панель" (т.е. шифруемые символы сразу попадают в первую роторную "подстановку"), известно количество роторов (подстановок) - их три штуки, и заранее известен отражатель (Reflector). Неизвестными остаются сами роторы и их начальные положения. В связи с этим вопрос. Есть ли способ осуществить дешифровку сообщений не перебирая все возможные ключи и варианты роторов (читай подстановок)? Как уменьшить количество вариантов для перебора? Просто с моим алфавитом получается (64! * 64)^3 ~ примерно 5,355 *10^272
Помогите написать программу на С++ с помощью рекурсии:
Задано двумерное поле, содержащее черные фигуры на белом фоне. Перекрасить в красный цвет фигуру, содержащую выбранную пользователем точку. Допускается заменить цветовое представление кодовым.
Заранее спасибо .
Господа!Буду очень благодарен за любую предоставленную помощь в решении вот этой задачи:
№3.Дано предложение,в конце которого стоит точка.Слова отделены друг от друга одним или несколькими пробелами.Найти максимальную длину слов в данном предложении.
Язык программирования желательно С++ либо Pascal
#include<stdio.h>
#include<string.h>
int main( int argc , char *argv[] )
{
char str[] = "Very very simple example.";
char *pch = NULL;
int max = 0;
pch = strtok( str , " ." );
while( pch != NULL )
{
printf("%s\n" , pch );
if( max < strlen( pch ) ) max = strlen( pch );
pch = strtok( NULL , " .");
}
printf("max len is : %d\n" , max );
return 0;
}
Помогите пожалуйста!Очень срочно нужно.Буду очень благодарен откликнувшимся.
Задание:
Розработать матиматическую постановку задачи и сложить программы на языках Паскаль и Си для перещета координат точки с полярной системы в декартовую.
Так должно работать
uses crt;
var
a,x,z:real;
begin
clrscr;
writeln('x=');
readln(x);
write('z=');
readln(z);
a:=(3+exp(y)-1)/(1+sqr(x)*abs(y-sin(z)/cos(z)));
end.
Почему пишет Error 3: Unknown identifier?
>>serhio<<
25.10.2009, 22:26
помогите исправить ошибки в задачке на pascale
program chast;
var s:real;
n:integer;
sign:integer;
factor:integer;
i:integer;
begin
write('Ukazhite kol-vo elementov rada n=');
readln(n);
s:=0;
factor:=1;
for i:=1 to n do
begin
if i mod 2 = 0 then
sign:=-1
else
sign:=1;
factor:=factor*i;
s:=s+sign*((i+1)*exp(i*ln(x)))/factor;
writeln('s=',s);
end;
readln;
end.
Помогите с заданием на делфи.
=================
Создать модуль из функций и процедур для благоустройства:
1 одномерного массива за ростом.
2 одномерного массива за спадением.
3 Двумерного массива за ростом (по строкам).
4 Двумерного массиваза ростом (по столбикам)
5 двумерного масива за спадением ( по строкам).
6 двумерного масива за спадением (по столбикам).
прога нужна срочно.. Помогите плз....
>>serhio<<
26.10.2009, 01:48
помогите найти ошибки
program variant1;
uses crt;
var a,y,x:real;
b:=Pi;
c:=2*Pi;
z:=Pi/4;
y:=b;
while y < = c do
begin
x:=1-2*cos(a*y)+ln(y);
a:=ln(y)/ln(2);
writeln(y,x,a);
y:=y+z;
end;
readln;
end.
Неопределены переменные b, c, z, Pi, нет ключевого слова begin, начинающего программу, разорван знак <= (пробела быть не должно)
StealthMaster
27.10.2009, 00:54
Неопределены переменные b, c, z, Pi, нет ключевого слова begin, начинающего программу, разорван знак <= (пробела быть не должно)
Pi это константа, а не переменная.
>>serhio<< , с учетом сделанных замечаний, и не вникая в суть программы, можно сказать, что код будет выглядеть так:
program variant1;
uses crt;
var
a, b, c, x, y, z:real;
begin
ClrScr;
b:=pi;
c:=2*Pi;
z:=Pi/4;
y:=b;
while (y <= c) do
begin
x := 1 - 2*cos(a*y) + ln(y);
a := ln(y)/ln(2);
writeln(y,x,a);
y := y+z;
end;
readln;
end.
ektomorf
27.10.2009, 20:41
Подсчитать сумму ряда с абсолютной погрешностью менее 0.0001. Полученные результаты необходимо проверить,
повторив вычисления с использованием стандартных функций. Результаты вывести на экран.
Пояснение: вычисления необходимо производить оптимально. Например, не нужно заново вычислять 21ю степень числа X,
если ранее была подсчитана 20я, нужно просто старое значение умножить на X.
ВАРИАНТ 14
http://pic.ipicture.ru/uploads/091027/thumbs/yCX7a3kSeC.jpg (http://ipicture.ru/Gallery/Viewfull/25710980.html)
Помогите, сделать небольшую прогу: которая вязяв из мемо(или эдит пох вообще) русский текст выдаёт сколько раз в нём повторяется самое маленькое слово.
StealthMaster
28.10.2009, 22:52
Помогите, сделать небольшую прогу: которая вязяв из мемо(или эдит пох вообще) русский текст выдаёт сколько раз в нём повторяется самое маленькое слово.
Описание: построчно считываем текст из Memo и создаем список слов, в котором записаны слова и сколько раз каждое слово встречается. После всего этого находим в списке самое первое короткое (если слов такой длины несколько) слово и показываем сообщение с информацией о слове и количестве его вхождений в текст.
Примечание: считаем, что слова ограничены символами " . , ! ? : ;
Реализация на Delphi:
type
// будем использовать записи с двумя полями: слово и количество таких слов в тексте
TWord = record
WRD: string;
number: byte;
end;
type
TWords = array of TWord;
var
Words: TWords; // все слова текста
EndSymbols: set of char; // символы, которые ограничивают слово
...
procedure AddWord (word: string); // добавление нового слова в список
var
i: integer;
lnth: byte;
NewWord: boolean;
begin
lnth := length(Words);
NewWord := true;
// проверяем, не добавлено ли это слово уже в список слов
for i := 0 to lnth-1 do
if Words[i].WRD = word then
begin
NewWord := false;
// если в списке, то увеличиваем счетчик для него
Words[i].number := Words[i].number + 1;
break
end;
if NewWord then // если не в списке, то добавляем
begin
SetLength(Words, lnth+1);
Words[lnth].WRD := word;
Words[lnth].number := 1;
end;
end;
procedure FindWords(Text: string);
var
i: integer;
tmpstr: string;
begin
EndSymbols := [' ', '.', ',', '!', '?', ':', ';', '"'];
tmpstr := '';
for i := 1 to length(Text) do // ищем все слова в строке
if not(Text[i] in EndSymbols)
then
begin
tmpstr := tmpstr + Text[i];
if i = length(Text) then
AddWord(tmpstr);
end
else
if length(tmpstr) > 0 then
begin
AddWord(tmpstr);
tmpstr := '';
end;
end;
function FindShortWord: TWord; // ищем самое короткое слово
var
min: byte;
i: integer;
begin
min := 0;
for i := 1 to length(Words) - 1 do
begin
if length(Words[i].WRD) < length(Words[min].WRD) then
min := i;
end;
Result := Words[min];
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
tmp: TWord;
begin
for i := 0 to Memo1.Lines.Count-1 do
FindWords(memo1.Lines[i]);
tmp := FindShortWord;
ShowMessage('Самое короткое слово: '+ tmp.WRD + '. Встречается раз: ' + IntToStr(tmp.number));
end;
<Maxwell>
28.10.2009, 22:58
помогите мне с лабами
lastsmile
29.10.2009, 10:29
Помогите с заданием на делфи.
=================
Создать модуль из функций и процедур для благоустройства:
1 одномерного массива за ростом.
2 одномерного массива за спадением.
3 Двумерного массива за ростом (по строкам).
4 Двумерного массиваза ростом (по столбикам)
5 двумерного масива за спадением ( по строкам).
6 двумерного масива за спадением (по столбикам).
... если честно не понял самого задания.
Что значит "для благоустройства массива за ростом и падением"?
ну либо первое, либо одно из двух (с) хз
Сортировка входных данных...
lastsmile
29.10.2009, 11:31
Помогите с заданием на делфи.
=================
Создать модуль из функций и процедур для благоустройства:
1 одномерного массива за ростом.
2 одномерного массива за спадением.
3 Двумерного массива за ростом (по строкам).
4 Двумерного массиваза ростом (по столбикам)
5 двумерного масива за спадением ( по строкам).
6 двумерного масива за спадением (по столбикам).
... если честно не понял самого задания.
Что значит "для благоустройства массива за ростом и падением"?
ну либо первое, либо одно из двух (с) хз
Помогите пожалуйста!Очень срочно нужно.Буду очень благодарен откликнувшимся.
Задание:
Розработать матиматическую постановку задачи и сложить программы на языках Паскаль и Си для перещета координат точки с полярной системы в декартовую.
помогите
Задача довольно проста в описании: "требуется создать нетипизированный интерпретатор". Вся загвоздка заключается вот в чём:
язык ориентирован под математику -> основным "типом" будет являться комплексная матрица (это максимум который требуется при реализации). Как сформировать описание переменной, т.е. её структуру, через какие типы это сделать?.
Я бы предложил, что-то типа:
type
TVariable = record
Name:string; - название переменной
Used:Boolean; - используется ли она в коде - проще говоря если она в коде встречается только 1 раз то её можно было бы и выкинуть. Циклы и тд не рассматриваю (мб я ошибаюсь)
Real:Variant; - реальная часть переменной - может быть числом, строкой, массивом
Imag:Variant; - мнимая часть/ Причём размеры реальной и мнимой части всегда равны.
function ColCount:integer; - если Real массив, то возвращает длину иначе 0. (можно обойтись, но так проще для реализации )
function RowCount:integer; - если Real двойной массив то возвращает длину иначе 0.
end;
Реализация убога тем, что при использовании Variant снижается скорость вычислений из-за проверки типов.
Может кто-нибудь сможет подсказать более удобную и простую форму?
Может кто-нибудь сможет подсказать более удобную и простую форму?
Число, строка - это частные случаи матрицы, следовательно ты можешь задать тип через динамический массив комплексных чисел, типа
TMatrix=array of array of TPair;
TPair = record
a:real;
b:real;
end;
Name:string; - название переменной
Used:Boolean;
Это вообще не нужно, эти параметры должен хранить интерпретатор, а не сама переменная.
Algol Ааа..вот он что...спасибо
буду разбираться
Люди помагите с лабой по С++ (написать алгоритм для решения линейных уравнений методом обратной матрицы) помагите кто знает за рание спасибо ! ! !
помогите пожалуйста)
есть программа, которая должна строить график, но она почему то выводит ошибку
вот текст
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
main()
{float x0,xh,xk,x,y,mx,my;
int gt,gm,err;
gt=DETECT;
initgraph(>,&gm,"");
err= graphresult();
if(err!=0)
{clrscr();
puts("ERROR");
getch();
return 1;
}
printf(" Input x0,xh,xk");
scanf("%f %f %f", &x0,&xh,&xk);
mx=(getmaxx()/2)/xk;
my=(getmaxy()/2)/3;
cleardevice();
setbkcolor(14);
setcolor(2);
line(320, 0, 320, 480);
line(0, 240, 640, 240);
outtextxy(340, 230,"0");
outtextxy(340, 20,"y");
outtextxy(630, 230,"x");
setcolor (1);
for(x=x0;x<=xk;x+=xh)
{y=(x*x+x)/(8+sqrt(x));
if (fabs(x)<2)
{ y=y+pow(x,7);
putpixel(floor(320+mx*x),floor(240-my*y),4);
}
else
{y=y+sin(x);
putpixel(floor(320+mx*x),floor(240-my*y),7);
}
}
getch();
return 0;
}
помогите пожалуста(все драйверы установлены)
BrainDeaD
02.11.2009, 21:11
какую ошибку выдаёт? скопируй сюда.
он вместо графика показывает ERROR
и все(((
ну вроде получилось а почему я не могу писать на русском??пишет рпи переводе на русский какие то непонятные символы среда borland c++ 3.1
а вот еще вопрос язык си это база с++??и с++ язык высокого уровня??просто учительбница говорит да, а тут написано нет((кому верить?
возможно просто у тя файл egavga.bgi потерян гдето. Он должен валяться в папке с прогой.
С++ - это продолжение С в котором большой упор был сделан на классовую структуру.
С и С++ - языки высокого уровня. Язык низкого уровня это тока ASM и HEX )
2slesh задаю вопрос не потому что сомневаюсь что ты гуру(я даже убежден в этом), а потому что сам ещё нубоватый, а разве есть язык HEX?
HEX - это в плане того, что когда еще не было ассемблера, то машинные инструкции вводили с шестнадцатиричной системе. т.е. знающие люди могли писать COM программы в HEX редакторе. Отчасти это и можно было бы назвать языком низкого уровня. Хотя это просто машинный код. Хотя если учесть что каждую команду можно собрать по определенным правилам (то как их обрабатывает проц), когда каждый бит значит определ:енную операцию, то тогда то и есть чисто машинный код )
Яж.. всё забыл почти. Помню тока что
CD 21 - int 21h
90 - nop
С3 - ret
Привет всем!!!!я хочу вас попросить написать программу на паскале......сколько бился.......нифига не получилось........пожауйста напшите программу....отдам за это шоху и семизнак......
вот в чём её суть
Описать рекурсивную функцию root(f,a,b,eps),которая методом де-
#60 ления отрезка пополам находит с точностью eps корень уравнения
f(x)=0 на отрезке [a,b]. (Считать, что eps>0, a<b, f(a))*f(b)<0, f(x)-непрерывная и монотонная функция на отрезке [a,b].)
#20 (ДОП.)Хороший интерфейс: ввод границ отрезка, контроль ввода, все по¬яснения при выводе сообщений.
спасибо заранее!!пожалуйста те,кто хотят написать мол нуб лёгкая прога или нуб сам делай....не пишите это...так как я знаю,что я нуб..вот и прошу помочь!!!
обязательнов этой проге нужно в начале
Type
func:=function(x:real):real
ps icq-73-53-74
ili here
Si{R}ius
03.11.2009, 11:43
Доброго времени суток, требуется помощь в написании кодировщика текста на Delphi (или Паскале).
Программа должна зашифровывать текстовый файл путем сдвига символов по таблице ASCII или xor`om при использовании пароля. Также нужно написать программу-брут, которая будет подбирать пароль, подходящий для расшифровки. В тексте имеется ключевое слово (4 символа), а пароль должен быть 1-6 символов.
Решил задачу при пароле в 4 знака, но как расшифровать текст с пассом, который длинее ключа, ума не приложу
Заранее благодарю за помощь.
slesh
а вот тут написано что С и С++ абсолютно разные языки
http://forum.antichat.ru/thread89681.html
как то я запуталась(((
slesh
а вот тут написано что С и С++ абсолютно разные языки
Когда говорят о сходстве или различии языков, имеется два аспекта "похожести":
близость синтаксиса, и близость идеологии языков.
Если говорить о синтаксисе, то C и С++ близки. Если говорить об идеологии - очень далеки друг от друга.
ааааа....понятно)))спасибо))))
Syntaxys
03.11.2009, 23:20
Написать программу, в которой процедура вводит значеия в некоторый целочисленный массив от 1 до n элементов, затем в теле программы вывести значения массива.
var m:array of real;
...
procedure x ();
var i:integer
setlenth(m , strtoint(edit1.text));
for i to strtoint(edit1.text)-1 do begin
m[i]:=random(1000)-500; //Взависимости от куда ты их хочешь вводить поменяй эту строку
memo1.text:=memo1.text+' '+floattostr(m[i]);
end;
end;
Писал без редактора..
2 0ldbi4 ты путаешь целые числа и дробные. ) А также strtoint(edit1.text) будет считаться при каждой итерации цикла. А это как понимаешь не очень хорошо
var
m : array of integer;
n : integer;
procedure x();
var
x:integer;
begin
n := strtoint(edit1.text); // если у тебя Delphi
setlenth(m , n);
for x := 0 to n-1 do
begin
m[x] := random(1000) - 500; // ввод
memo1.lines.add(inttostr(m[x])); // вывод
end;
end;
mr_walker
04.11.2009, 22:00
Ребят, помогите пллиииз срочно надо примитивный кроссплатформенный сервер? который понимает и обрабатывает хттп запросы.... желательно на С, если на С - сложно, то на делфи.....
оч прошу....
Да действительно попутал) а strtoint не проблема я уверен цикл из 100к и выше ему не нужны..
xxxxxxxxxxxxxxx
05.11.2009, 03:38
Ребят, помогите пллиииз срочно надо примитивный кроссплатформенный сервер? который понимает и обрабатывает хттп запросы.... желательно на С, если на С - сложно, то на делфи.....
оч прошу....
как вы себе это представляете?=) Там WinApi, а в linux системные вызовы:) гуглите сабж на Python'e
2 mr_walker возьми скачай исходникик nginx - он кросплатформенный и написан на С
И есть заточки под nix, bsd и win.
mr_walker
05.11.2009, 15:50
Ребят сорри с этим разобрался... уже мучаю nginx...еще вчера нагуглил, но если можно то под винду на делфи... а то я делфи не шарю((
Люди помагите с лабой по С++ (написать алгоритм для решения линейных уравнений методом обратной матрицы) помагите кто знает за рание спасибо ! ! !
StalkerKill
08.11.2009, 11:46
http://pic.ipicture.ru/uploads/091107/4Xf1e3QJVu.jpg
может кто помочь??? лаба на С, а я в нем нуль :mad:
lastsmile
08.11.2009, 12:53
здравствуйте господа программисты. интересует вопрос по умному перебору. задача следующая: имеется число 1234...n
задача: загнать в одномерный массив всевозможные комбинации этого числа так чтобы каждая цифра присутствовала только 1 раз.
допустим если ввели N=3 то в массиве должны быть числа
123
132
213
231
312
321
придумал свой алгоритм но слишком мудрено получилось. интересуют ваши варианты. может можно как-то проще. ну наверное все знают что комбинаций тут n!=1*2*3*...*n
mr_walker
09.11.2009, 01:05
Как написать функцию проверки пароля введенного в Edit,
чтобы при вводе правильного паса и нажатия на Button
выполнялась моя функция (MyFunction)?
WereWolfV
09.11.2009, 11:45
Всем привет. Лабораторная: "Визуализация сортировки Хоара", нужно реализовать пошаговое выполнение алгоритма (пользователь нажимает кнопку "далее"); на каждом шаге алгоритма отображение блок-схемы с выделением выполняемого в настоящий момент шага.
Посоветуйте чем можно останавливать алгоритм и передавать управление форме до следующего нажатия кнопки "далее".
ЗЫ лаба на Delphi
Создать класс Payment(зарплата). В классе должны быть представлены поля: фамилия-имя-отчество, оклад, год поступления на работу, процент надбавки, подоходный налог, количество отработанных дней в месяце, количество рабочих дней в месяце, начисленная и удержанная суммы.
Реализовать методы: вычисления начисленной суммы, вычисления удержанной суммы, вычисления суммы, выдаваемой на руки, вычисления стажа. Стаж вычисляется как полное количество лет, прошедших от года поступления на работу, до текущего года. Начисления представляют собой сумму, начисленную за отработанные дни, и надбавки, то есть доли от первой суммы. Удержания представляют собой отчисления в пенсионный фонд (1% от начисленной суммы) и подоходный налог. Подоходный налог составляет 13 % от начисленной суммы без отчислений в пенсионный фонд.
Ты че, думаешь тебе на халяву тут роман напишут? Для студентов и школьников есть отдельный раздел.
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.
можно блок схему плиз?
ты бы перевел хоть условие. я вот например в душе не знаю, что такое "удержанная сумма", и чем отличается "начисленная сумма" от "суммы, выдаваемой на руки". а то начал писать, а что делают методы хз
POS_troi
10.11.2009, 01:10
начисленная сумма - сумма зарплаты по договору
сумма, выдаваемой на руки - сумма которую ты получаеш после всех удержаний
Удержания - подоходный, пенсионный, штрафы за прогулы и т.п. =)
class Payment {
private:
string Name;
string LastName;
float Salary;
int EntranceYear;
float Bonus;
float Tax;
int RealActiveDays;
int ActiveDays;
float AmountCharged;
float RetentionMoney;
float PensionFund;
int CurrentYear;
public:
float get_amount_charged ();
float get_retention_money ();
float get_paid ();
int get_experience ();
};
Payment::get_amount_charged () {
return (( Salary / ActiveDays ) * RealActiveDays * ( 1 + Bonus )); // Я хз как оно вычисляется на самом деле
}
Payment::get_retention_money () {
return (( AmountCharged * PensionFund ) + ( AmountCharged * Tax ));
}
Payment::get_paid () {
return ( AmountCharged - RetentionMoney );
}
Payment::get_experience () {
return ( CurrentYear - EntranceYear );
}
вот, как понял это я ) писал здесь хз что вышло
StealthMaster
10.11.2009, 02:28
здравствуйте господа программисты. интересует вопрос по умному перебору. задача следующая: имеется число 1234...n
задача: загнать в одномерный массив всевозможные комбинации этого числа так чтобы каждая цифра присутствовала только 1 раз.
допустим если ввели N=3 то в массиве должны быть числа
123
132
213
231
312
321
придумал свой алгоритм но слишком мудрено получилось. интересуют ваши варианты. может можно как-то проще. ну наверное все знают что комбинаций тут n!=1*2*3*...*n
Как я понял, нужно реализовать перебор перестановок на n символах. Рассматривай каждое число как последовательность символов.
Варианты перебора описаны, например, здесь: http://rain.ifmo.ru/cat/view.php/vis/combinations/permutations-2000
Need backup. :)
Массивы Pascal.
Задача:
Ввести 5 целых чисел, вывести на екран это число, корень этого числа и квадрат этого числа.
Код ввода возможно должен быть
for i:=1 to 5 do write (M[i]:5);
writeln
for j:=1 to 3 do write (M[j]:3);
writeln
Код вывода
for i:=1 to 5 do
begin
writeln;
end;
for j:=1 to 3 do write(M[i;j]:15);
Тоесть результатирующий вывод при компиляции программы должен быть вида:
Загружаем код. Осуществляем ввод чисел
(1
2
3
4
5)
Программа подсчитывает и выводит ответ в виде некой матрицы:
1 1 1
2 0,.. 4
3 sqrt(3) 9
4 ... ...
5 ... ...
1 столбик наши вводимые числа. 2ой - корни. 3 - квадраты.
for i:=0 to N do
begin
writeln ("Enter ", i+1, "number: ");
readln (N[i]);
end;
for i:=0 to N do
write (N[i], " ", sqr(N[i]), " ", sqrt(N[i]), "\n");
ааа не разглядел тз ) тогда все
mr_walker
10.11.2009, 16:13
Пост #1863 помогите плиз!
Пост #1863 помогите плиз!
В у кнопки есть функция OnClick. Клацаешь 2 раза на кнопку в конструкторе формы, появляется OnClick. В неё пишешь что-то вроде
if (password==Edit1.text) then MyFunction();
P.S. password - это твой пароль, который я не знаю откуда ты берёшь. Можешь просто текст там написать.
mr_walker
10.11.2009, 16:46
В у кнопки есть функция OnClick. Клацаешь 2 раза на кнопку в конструкторе формы, появляется OnClick. В неё пишешь что-то вроде
if (password==Edit1.text) then MyFunction();
P.S. password - это твой пароль, который я не знаю откуда ты берёшь. Можешь просто текст там написать.
Спасибо, и, я надеюсь, последний вопрос:
какая функция на закрытие формы
тоесть на открытие я пишу form1.show а что писать на закрытие???
Спасибо, и, я надеюсь, последний вопрос:
какая функция на закрытие формы
тоесть на открытие я пишу form1.show а что писать на закрытие???
Только этой формы - form1.Close();, приложения - Applicaiotn.Terminate();.
Можно не закрывать форму, а просто спрятать. form1.Hide();
Всем доброе время суток)
Есть задача:
На входе строка с числом в шестнадцатиричной форме. Распознать строку в переменную типа int. На выходе строки с введенным числом в двоичной, восьмиричной и десятичной форме.
Нужно решить ее на С (не плюсах).Туплю, не могу решить. На паскале делал все норм, а с С какая-то жопа....(((((
Заранее спс__))
Lucky_day
12.11.2009, 01:01
нужна помощь с лабой с++. благодарность соответственно...
нужно в имеющемся коде : доделать вращение и масштабирование.
ася 422983433
Скан задач _ http://ifolder.ru/14739228
Решитнужно в экселе , ребят нужно очень очень
Составить структурированную программу табулирования значений функции S(x) и Y(x) в диапазоне http://pic.ipicture.ru/uploads/091114/LVF8uzcisU.png. Сумму вычислить из 40 членов ряда. Шаг изменения аргумента принять равными http://pic.ipicture.ru/uploads/091114/KRS9XsOVoT.png
Функция S(x)
http://pic.ipicture.ru/uploads/091114/3ZHqSm0b76.png
Функция Y(x)
http://pic.ipicture.ru/uploads/091114/RMV2zHH9fu.png
Код на Pascal:
program z3n29;
uses crt;
var
x,x1,x2,d,y,s: real;
n: byte;
begin
X1:=pi; { X - конечный }
X2:=pi/5; { X - начальный }
d:=abs(X2-X1)/9; { Шаг изменения аргумента }
x:=pi/5; { Начальное значение Х }
clrscr;
{ Используется для создания таблицы при выводе }
writeln('ЙННННННЛННННННННННЛН НННННННН»');
writeln('є x ',' є s ',' є y є');
writeln('МННННННОННННННННННОН НННННННН№');
while (x < pi) do
begin
for n:= 0 to 40 do { Шаг 40 }
begin
s:=s+cos(x)+cos(3*x)/9+cos((2*n-1)*x)/sqr(2*n-1); { Функция S(x) }
end;
y:=sqr(pi)/8-abs(x)*pi/4; { Функция Y(x) }
writeln('є',x:5:1,' є ',S:5:4,' є ',y:5:4, ' є'); { Вывод результата }
x:=x+d;
end;
writeln('ИННННННКННННННННННКН ННННННННј');
readkey
end.
Результат:
http://pic.ipicture.ru/uploads/091114/pDFs1b6dIU.png
Смысл в том, что столбцы S и Y должны быть одинаковы(!). Помогите разобраться, что я делаю не так :(
Si{R}ius
15.11.2009, 16:38
Как в Делфи определить - параллельны ли отрезки?
Имеются точки начала и конца их.
geforse
поставь условие: ули есть минус (значение меньше нуля), то вместо этого ' є ' выводи 'є '
geforse
поставь условие: ули есть минус (значение меньше нуля), то вместо этого ' є ' выводи 'є '
Да кривость таблицы меня не интересует, мне нужно чтобы значения (цифры) в столбцах S и Y были одинаковые
P.S. Y:=S; не предлагать :)
Как в Делфи определить - параллельны ли отрезки?
Имеются точки начала и конца их.
Делаешь из отрезков вектора, и проверяешь на коллинеарность.
Lazy_Student
16.11.2009, 01:29
Надо цыкл сделать фор и типа чтобы масив из 256 элиментов заполнить прастыми числами. Числа только прастые!
Хэлп плиз решите дам +++
Вот код подобной задачи на паскале. Выводит простые числа от 1 до 100 на экран. Доработаешь :) удачи!
program z6;
var i,k,n: integer;
begin
for i:= 2 to 100 do begin
n:= 0;
k:= 1;
while(k<=i) and (n<3) do begin
if (i mod k) = 0 then n:= n+1;
k:= k+ 1;
end;
if n=2 then write(i,' ');
end;
readln
end.
StealthMaster
16.11.2009, 03:20
Описание: В моем примере заполняется целочисленный массив длины 256 простыми числами, а затем результат выводится в Memo.
Краткое пояснение: число будет простым в том и только том случае, когда оно не делится ни на одно из предыдущих простых чисел.
type
PrimeNumbers = Array [byte] of integer;
function GetPrimeNumbers: PrimeNumbers;
var
counter, number: integer; // текущий номер простого числа и само число
i: integer; // счетчик цикла
flag: boolean;
begin
counter := -1;
number := 2;
while (counter < 255) do
begin
flag := true;
if counter >= 0 then // у меня в Delphi 7 под Win7 некорректно отрабатывает
//цикл for, если второй индекс меньше первого.
// возможно проблема исключительно моей системы
for i := 0 to counter do
if (number mod Result[i] = 0) then
begin
flag := false;
break;
end;
if flag then
begin
inc(counter);
Result[counter] := number;
end;
inc(number);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Numbers: PrimeNumbers;
i: integer;
begin
Numbers := GetPrimeNumbers;
for i := 0 to 255 do
Memo1.Lines.Add(IntToStr(Numbers[i]));
end;
Народ, помогите плз, а то времени разбираться нету, а нужно срочно. Язык С++\С#
Нужно построить график ф-и y = x^3 sin x в оконной форме. Нужно построить график выводом пикселей в форме. Потом сохранить скрин этого окошка(не всего рабочего стола, а именно этой формы) и сохранить его в формате *.prn - это для того, чтобы реализовать вывод на печать эмулятора матричного принтера.
Мне главное знать как реализовать это фу-ю в программировании, выводить точки на экран в нужных координатах и как сделать и сохранить скрин этой формы.
Заранее оч благодарен!
Блин ну что вы учите хоть примерно???
А алгоритм оч просто... заганяеш в цыкл ф-цию свою с определенным шагом и выводиш какждый раз точку, чем мельче шаг тем точнее график получится
Привет всем!
Спасайте срочно пожалуйста!)
Паскаль:
Упорядочить массив А(20) методом слияния.
Syntaxys
17.11.2009, 18:10
Отсев.
Удалить в заданном массиве х(н) "лишные" элементы
кроме первого так, чтобы оставшиеся образовали
возрастающую последовательность (за один просмотр массива).
Сделал все, кроме упорядочивания. Подскажите как массив упорядочить за один просмотр массива или реализовать удаление и сортировку за один просмотр.
Program sdvig;
type
Mas=array [0..99] of integer;
Procedure vvod(Var m:Mas; Var kolvo:integer);
Var i:integer;
begin
repeat
write('Vvedite kolvo elementov:');
readln(kolvo);
until kolvo>0;
for i:=1 to kolvo do
begin
write('element:');
read(m[i]);
end;
end;
Procedure udalenie(Var m:Mas; Var element:integer;Var kolvo:integer);
Var i:integer;
Begin
for i:=element to kolvo do
Begin
m[i]:=m[i+1];
End;
kolvo:=kolvo-1; //не отображать нуль-элемент массива
End;
var i,m,kolvo,element:integer;
accept:string;
n:mas;
Begin
vvod(n,kolvo);
repeat
writeln('Vvedite Nomer elementa');
readln(element);
udalenie(n,element,kolvo);
writeln('Massiv:');
for i:=1 to kolvo do
write(n[i],' ');
writeln(' ');
writeln('Udalit esho 1 element massiva?');
writeln('Yes/no?');
repeat
read(accept);
until (accept='no') or (accept='yes') ;
until accept = 'no';
end.
velvetdust
17.11.2009, 19:56
Такая ситуация, срочно пришлось переводиться в универе в другую группу посреди семестра - и нужно срочно сдать лабу на с++, а я изучал си чистый, поэтому прошу вашей помощи. Задание такое:
Написать программу учета заявок на обмен квартир и поиска вариантов обмена.
Каждая заявка содержит фамилию и инициалы заявителя, а также сведения о двух квартирах: требуемой (искомой) и имеющейся. Сведения о каждой квартире содержат: количество комнат, площадь, этаж, район.
Программа должна обеспечивать выбор с помощью меню и выполнение следующих функций:
1) ввод заявки на обмен;
2) поиск в картотеке подходящего варианта: при совпадении требований и предложений по количеству комнат и этажности и различии по показателю «площадь» в пределах 10% выводится соответствующая карточка и удаляется из списка, в противном случае поступившая заявка включается в картотеку;
3) вывод всей картотеки.
Хранение данных организовать с применением контейнерного класса set.
Пример выполнения лабы есть в архиве (http://dump.ru/file/3782272)
Пишите на почту [velvetdust(собака)yandex.ru], за сколько готовы сделать, я вам отвечу.
P.S. Ребята говорят, что препод особенно любит блок-схемы, так что вот их важно сделать четко, как в примере...
высокая закомментированность кода приветствуется)
Блин ну что вы учите хоть примерно???
А алгоритм оч просто... заганяеш в цыкл ф-цию свою с определенным шагом и выводиш какждый раз точку, чем мельче шаг тем точнее график получится
Заочников никто ничему не учит. Алгоритм построения я и сам придумаю. Мне основное знать нужно то, что я написал.
помогите, пожалуйста.
нужно написать cgi приложение на С++, которое делает следующее:
В каждом слове текста k-ю букву заменить заданным символом. Если k больше длины слова, корректировку не выполнять.
Заранее большое спасибо!
Привет всем!
Спасайте срочно пожалуйста!)
Паскаль:
Упорядочить массив А(20) методом слияния.
Program SlivSort;
const arrsize= 20;
Var A,B : array[1..20] of integer;
N,i : integer;
Procedure Sliv(p,q : integer); {процедура сливающая массивы}
Var r,i,j,k : integer;
Begin
r:=(p+q) div 2;
i:=p;
j:=r+1;
for k:=p to q do
if (i<=r) and ((j>q) or (a[i]<a[j])) then
begin
b[k]:=a[i];
i:=i+1;
end
else
begin
b[k]:=a[j];
j:=j+1;
end ;
for k:=p to q do
a[k]:=b[k];
End;
Procedure Sort(p,q : integer); {p,q - индексы начала и конца сортируемой части массива}
Begin
if p<q then {массив из одного элемента тривиально упорядочен}
begin
Sort(p,(p+q) div 2);
Sort((p+q) div 2 + 1,q);
Sliv(p,q);
end;
End;
Begin
{Определение размера массива A - N) и его заполнение}
randomize;
for i:= 1 to arrsize do begin
A[i]:= random(50);
write(A[i],' ');
end;
Writeln;
{запуск сортирующей процедуры}
Sort(1,arrsize);
{Вывод отсортированного массива A}
for i:= 1 to arrsize do write(a[i],' ');
readln;
End.
спасайте..
написал программу на С++ которая высчитывает дни недели.
стал писать защиту от дураков, но доделать её немогу.
нужно сделать чтоб программа учитывала весокосные года и при ошибке писала что вы ошиблись.
идейки есть( но к сажалению языка незнаю( ибо в универе прошлом учил паскаль(
завтра сдавать а я низнаю как сделать(
#include <stdio.h>
#include <windows.h>
#include <math.h>
#include <conio.h>
//_______________________Руссификатор консоли____________________________________ ___
char bufRus[256];
char*Rus(const char*text)
{
CharToOem(text, bufRus);
return bufRus;
}
//_________________Программа_______________ ____________
void main ()
{
int day, month, year;
int c,y;
int m;
int d;
printf(Rus("Определение дня недели по дате\n"));
printf(Rus("ВВедите дату: день месяц год\n"));
printf(Rus("Например: 5 12 2001\n"));
printf(Rus("ВВедите: Месяц ->\n"));
scanf("%i", &month);
//__________________________Защита____________ ____________________
while (month>12)
{
if (month>12)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &month); }
else break;
}
//__________________________________________________ ________
printf(Rus("ВВедите: День ->\n"));
scanf("%i", &day);
//__________________________Защита____________ ____________________
while (month==1||month==3||month==5||month==7||month==8| |month==10||month==12)
{
if (day>31)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
while (month==2)
{
if (day>29)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
while (month==4||month==6||month==9||month==11)
{
if (day>30)
{printf(Rus("Дибил, ошибся, попробуй ещё ->\n"));
scanf("%i", &day);}
else break;
}
//__________________________________________________ ________
printf(Rus("ВВедите: Год ->\n"));
scanf("%i", &year);
if (month==1||month==2)
year--;
m=month - 2;
if (m<=0) m+=12;
c=year/100;
y=year-c*100;
d=(day+(13*m-1)/5+y+y/4+c/4-2*c+777)%7;
switch (d)
{
case 1: printf(Rus("Понедельник\n")); break;
case 2: printf(Rus("Вторник\n")); break;
case 3: printf(Rus("Среда\n")); break;
case 4: printf(Rus("Четверг\n")); break;
case 5: printf(Rus("Пятница\n")); break;
case 6: printf(Rus("Суббота\n")); break;
case 0: printf(Rus("Воскресенье\n")); break;
}
getch ();
}
Ну например
int god;
if (god%4==0)
printf("Год высокосный");
походу так
Дальше спихнуть в свой код сам думаю сможеш=)
Задача на Паскале: ........, Если масисив не упорядочен, то определить длину упорядоченной часта массива.
я делаю так
t:=0;
for i:=0 to n do
begin
if m[i]<m[i+1] then k:=k+1
else
begin
if t<k then
begin
t:=k;
k:=1;
end
И если масив состоит из 12123123451
Выведет 5, т.к. это самая длинная упорядочена часть масива.
Но если 12123123456
То выведет 3, т.е. оно у меня не правильно считает, потому что не выполняется условие f m[i]<m[i+1]
Как сделать что бы нормально считало?
Смотри. у тебя переменная t:=0
В условии if t>k then
begin
t:=k;
k:=1;
end
она всё время меньше k будет
Но ведь во второй раз она может быть и больше k. Просто мне нужно самую длинную упорядоченную часть масива. Вдруг эта часть будет меньше предыдущей упорядоченной части.
Ты меня конешно извини, но я упор не вижу что бы твоя перемення t где нибудь увеличивалася
Блин да посмотри сам... где в else ты проверяеш или t больше k... это условие никогда не збудетсо... може t меньше k?
Эм.. Точно, чет затупил, сори) Но проблема актуальна, как определить длину упорядоченной части массива?
KaZ@NoVa
19.11.2009, 20:38
Задача на Паскале: ........, Если масисив не упорядочен, то определить длину упорядоченной часта массива.
я делаю так
t:=0;
for i:=0 to n do
begin
if m[i]<m[i+1] then k:=k+1
else
begin
if t<k then
begin
t:=k;
k:=1;
end
И если масив состоит из 12123123451
Выведет 5, т.к. это самая длинная упорядочена часть масива.
Но если 12123123456
То выведет 3, т.е. оно у меня не правильно считает, потому что не выполняется условие f m[i]<m[i+1]
Как сделать что бы нормально считало?
i:=2;
while (mas[i-1] <= mas[i] )and(i<=masLength) do
inc(i);
if i = 2 then write('dlina uporyad 1')
else write('dlina uporyad 1',i)
я бы делал примерно так.
:rolleyes:
Need backup. :)
Массивы Pascal.
Задача:
Ввести 5 целых чисел, вывести на екран это число, корень этого числа и квадрат этого числа.
Код ввода возможно должен быть
for i:=1 to 5 do write (M[i]:5);
writeln
for j:=1 to 3 do write (M[j]:3);
writeln
Код вывода
for i:=1 to 5 do
begin
writeln;
end;
for j:=1 to 3 do write(M[i;j]:15);
Тоесть результатирующий вывод при компиляции программы должен быть вида:
Загружаем код. Осуществляем ввод чисел
(1
2
3
4
5)
Программа подсчитывает и выводит ответ в виде некой матрицы:
1 1 1
2 0,.. 4
3 sqrt(3) 9
4 ... ...
5 ... ...
1 столбик наши вводимые числа. 2ой - корни. 3 - квадраты.
Кто поможет, не пожалею WMZ. :)
warkk t:=0;
for i:=0 to n-1 do
begin
if m[i]<m[i+1] then k:=k+1
else k:=1;
if t<k then t:=k;
end;
>>serhio<<
20.11.2009, 19:48
Turbo Pascal Дан массив размера N.Осуществить циклический сдвиг элементов массива вправо на одну позицию с запоминанием первого элемента исправте что неправильно.
var
a:array [1..100] of integer;
i,n,temp:integer;
begin
writeln('Vvedite n=');
readln(n);
writeln('Vvedite massiv');
for i:=1 to n do
readln (a[i]);
for i:=n downto 2 do
a[i]:=a[i-1];
for i:=1 to n do
i:=1;
temp:=a[i+1];
a[i+1]:=a[i];
temp:=a[n];
a[1]:=a[n];
writeln (a[i]);
readln;
end.
с запоминанием первого элемента
тобишь что бы можна было вызвать первый елемент старого масива?
исправте что неправильно.
а что собно не получается?
>>serhio<<
20.11.2009, 20:07
проверь в паскале там программа неправильно работает
сорри паскаль не стоит... в голове компилю
KaZ@NoVa
20.11.2009, 23:57
G4bR1eL
подсичтывать результат надо так
for i:=1 to 5 do
writeln(val[i],' sqrt= ',sqrt(val[i]),' sqr= ', sqr(val[i]));
2 >>serhio<<
Ну сдесь
for i:=1 to n do
i:=1;
temp:=a[i+1];
a[i+1]:=a[i];
temp:=a[n];
a[1]:=a[n];
writeln (a[i]);
В цикле у тебя выполнятеся только i:=1 тобишь после
for i:=1 to n do нужен begin end;
И я не пойму зачем ты в цикле каждый раз присваиваешь переменной i значение одиницы?
И что ты пытаешся сделать в этой чати?
temp:=a[i+1];
a[i+1]:=a[i];
temp:=a[n];
a[1]:=a[n];
GL_Loney
22.11.2009, 18:07
Дана строка s, содержащая от 2 до 25 слов, в каждом из которых от 1 до 8
строчных латинских букв. Между соседними словами стоит не менее одного
пробела, за последним словом - точка. Напечатайте слова строки, которые
отличны от последнего слова и первая буква слова входит в него еще раз.
Нужно написать на СИ. Спасибо заранее.
Всем привет! У меня 5 лабараторных! Они сделаны только криво работают, очень прошу посмотрите что не так в коде!:
Лаба 8
Задание:Дан массив D(15) элементы массива который больше в 5 уменьшить в 3 раза , а остальные элементы увеличить на 4.
Моё решение:
Program PR8;
Uses Crt;
Const n=15;
Var
D:array [1..n] of integer;
b,i:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
D[i]:=random(20)-10;
write(D[i]:4);
end;
writeln;
for i:=1 to n do
begin
IF D[i]>5 then D:=D[i]/3 else b:=D[i]+4;
writeln (6:4:2);
end;
writeln;
readln;
end.
Перед else выдаёт ошибку.
Лаба 9
Задание: Дан массив E(11) найти произведение отрицательных элементов в массиве.
Моё решение:
Program PR9;
Uses Crt;
Const n=11;
Var
E:array [1..n] of integer;
P,i:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
E [i]:=random (10)-5;
writeln(E[i]:5);
end;
writeln;
P:=1;
for i:=1 to n do
begin
IF E [i]>0 then P:=P*E[i];
end;
writeln ('p=' , p:5);
readln;
end.
Работает но коряво, проверте просто.
Лаба 10
Задание: Дан массив (V10) найти полусумму нечётных эл-ов массива.
Моё решение:
Program PR10;
Uses Crt;
Const n=10;
Var
V:array [1..n] of integer;
i,d,s: integer;
sr:real;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin
V[i]:=random(20);
writeln(V[i]:3);
end;
writeln;
for i:=1 to n do
begin
s:=0;
IF V[i] MOD 2=1 then s:=s+V[i];
sr:=s/2;
end;
writeln ('sr=',sr:5:3);
readln;
end.
Опять же, просто проверьте.
Лаба 11
Задания нету) Есть тока решение, просмотрите пожалуйста сам код. Программа работает но криво =\
Program PR11;
Uses Crt;
Const n=3;m=4;
var
D:array [1..n , 1..m] of integer;
j,i,u:integer;
b:real;
begin
TextAttr:=$4B;ClrScr;
for j:=1 to n do
begin
for i:=1 to n do
begin
D[i,j]:=random(20)-10;
write (D[i,j]:u);
end;
writeln;
end;
for j:=1 to n do
begin
IF D[i,j]<3 then b:=D[i,j]+3 else b:=D[i,j]/12;
writeln (b:4:2);
end;
writeln;
readln;
end.
Лаба 12
Задание
Дан массив O(15,3) Найти произведение отрицательных элементов массива и подсчитать их количество.
Решение:
Program PR12;
Uses Crt;
Const n=5;m=3;
Var
O:array [1..n, 1..m] of integer;
i,j,p,k:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
begin
for i:=1 to n do
begin
O[i,j]:=random(20)-10;
write(O[i,j]:4);
end;
writeln;
end;
p:=1;
k:=0;
for i:=1 to n do
for j:=1 to m do
begin
IF O[i,j]<0 then p:=p*O[i,j];
K:=K+1;
end;
writeln ('p=',p:5);
writeln ('k=',k);
readln;
end.
опять же, проверьте программу, работает коряво)
В лабе 8 по-хорошему должно быть так:
Program PR8;
Uses Crt;
Const n=15;
Var
D:array [1..n] of integer;
b,i:integer;
begin
TextAttr:=$4B; // зачем это вообще не знаю...
ClrScr;
randomize;
for i:=1 to n do
begin
D[i]:=random(20)-10;
write(D[i]:4);
end;
writeln;
for i:=1 to n do
begin
IF D[i]>5 then D[i]:=D[i] div 3 // так как у нас массив интежеров.
else D[i]:=D[i]+4;
writeln (D[i]:4:2);
end;
writeln;
readln;
end.
В лабе 9 вместо того, чтоб искать произведение отрицательных элементов - ищет положительные.
Лаба 12
Задание
Дан массив O(15,3) Найти произведение отрицательных элементов массива и подсчитать их количество.
Решение:
Program PR12;
Uses Crt;
Const n=5;m=3; //тут указывается, что матрица у тебя 5 на 3 а не 15 на 3.
Var
O:array [1..n, 1..m] of integer;
i,j,p,k:integer;
begin
TextAttr:=$4B;ClrScr;
randomize;
for i:=1 to n do
begin // здесь не было for по j
for j:=1 to m do
begin
O[i,j]:=random(20)-10;
write(O[i,j]:4);
end;
writeln;
end;
p:=1;
k:=0;
for i:=1 to n do
for j:=1 to m do
begin
IF O[i,j]<0 then p:=p*O[i,j];
K:=K+1; // это можно заменить на inc(K);
end;
writeln ('p=',p:5);
writeln ('k=',k);
readln;
end.
А остальное вроде правильно.
Помог бы кто мне с моей лабой... В которой нужно разработать компилятор языка похожего на пхп... Скорее даже не компилятор, а транслятор в ассемблерный код.
D=P=CH= MOD=
22.11.2009, 22:54
Помогите пожалуйста сделать работу. Язык Си. Буду очень благодарен помощи.
Задачка:
Создать оконное приложение. В клиентской области осуществить вывод графика предложенной вам функции. График функции должен быть дополнен координатными осями с указанием единичных отрезков. Создать диалоговое окно, позволяющее производить выбор диапазона вывода значений функции и осуществлять подписи на осях графика. Создать диалоговое окно, позволяющее производить масштабирование графика. Создать диалоговое окно, позволяющее производить смещение центра координат графика. Создать диалоговое окно, позволяющее изменять задаваемые параметры функции. Создать диалоговое окно в котором можно будет задавать цвета графика и координатных осей, и стиль линий для координатных осей.
Рисунок варианта:
http://img130.imageshack.us/img130/9003/clipimage002f.gif
Syntaxys
23.11.2009, 14:24
Матрицу K(m,n) заполнить слудующим образом. Элементам, находящимся на периферии (по периметру матрицы), присвоить значение периметру оставшейся матрицы - значение 2 и т.д. до заполнения матрицы.
Это как я понял должно быть что-то вроде:
0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 1 1 1 0
0 1 9 9 9 9 9 9 1 0
0 1 9 3 3 3 3 9 1 0
0 1 9 3 2 2 3 9 1 0
0 1 9 3 2 2 3 9 1 0
0 1 9 3 3 3 3 9 1 0
0 1 9 9 9 9 9 9 1 0
0 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0
Собственно, это сделал.
Дальше:
Рассматривая результат предыдущей задачи, как нумерацию слоев матрицы, сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке.
То есть если было
10 0 0 0 0 0 0 0 0 0
10 2 1 1 1 1 1 1 1 0
10 1 3 9 9 9 9 9 1 0
10 1 9 4 3 3 3 9 1 0
10 1 9 3 5 2 3 9 1 0
10 1 9 3 2 2 3 9 1 0
10 1 9 3 3 3 3 9 1 0
10 1 9 9 9 9 9 9 1 0
10 1 1 1 1 1 1 1 1 0
10 0 0 0 0 0 0 0 0 0
Должно стать:
10 10 0 0 0 0 0 0 0 0
10 1 2 1 1 1 1 1 1 0
10 1 9 3 9 9 9 9 1 0
10 1 9 3 4 3 3 9 1 0
10 1 9 3 2 5 3 9 1 0
10 1 9 3 2 2 3 9 1 0
10 1 9 3 3 3 3 9 1 0
10 1 9 9 9 9 9 9 1 0
10 1 1 1 1 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0
Вот что получилось:
Program Neprogram;
type K=array [0..10,0..10] of integer;
Procedure zapolnenie(var x:K);
Var m,n,gran,znach,i:integer;
Begin
randomize;
gran:=0;
for i:=1 to 10 do
begin
znach:=trunc((10-1)*random+1);
gran:=gran+1;
for m:=1+gran to 10-gran do
for n:=1+gran to 10-gran do
x[m,n]:=znach;
end;
end;
Procedure povorot(var x:K); //процедура поворота
Var m,n,gran,i,buff,a:integer;
Begin
x[1,1]:=A; //Это чтоб проверить
x[2,1]:=A; поворачивает или нет.
x[3,1]:=A;
x[4,1]:=A;
x[5,1]:=A;
x[6,1]:=A;
x[7,1]:=A;
x[8,1]:=A;
x[9,1]:=A;
x[10,1]:=A;
gran:=0; //Изначально грань = 0
for i:=1 to 5 do //выполняем для x/2 слоев,
begin в нашем случае для 5
buff:=x[n+gran,m+gran]; //сохраняем верхнее левое значение
//считаем левую границу периферии
n:=1+gran;
for m:=1+gran to 9-gran do
x[m,n]:=x[m+1,n];
//нижнюю
m:=10-gran;
for n:=1+gran to 9-gran do
x[m,n]:=x[m,n+1];
//правую
n:=10-gran;
for m:=10-gran downto 2+gran do
x[m,n]:=x[m-1,n];
//верхнюю
m:=1+gran;
for n:=10-gran downto 3+gran do
x[m,n]:=x[m,n-1];
x[n+gran+1,m+gran]:=buff;//возвращаем утерянное значение
gran:=gran+1; //увеличиваем грань
end;
end;
Var x:K;
m,n:integer;
Begin
zapolnenie(x);
for m:=1 to 10 do
begin
writeln(' ');
for n:=1 to 10 do
write(x[m,n],' ');
end;
writeln(' ');
povorot(x);
writeln(' ');
for m:=1 to 10 do
begin
writeln(' ');
for n:=1 to 10 do
write(x[m,n],' ');
end;
writeln(' ');
end.
Пишет ошибку на 35 строке:
buff:=x[n+gran,m+gran];
»22098432 - выход за границы диапозона изменения индекса 0..10
Не могу сообразить почему :hmm:
Filosof_77
23.11.2009, 16:40
привет момогите с задачками на С++
=)
1.Создать класс студент, который имеет имя, курс и идентификационный номер. Определить конструкторы, деструктор и функцию печати. Создать public-производный класс - студент-дипломник, который содержит тему диплома. Определить конструкторы за умалчиванием и с разным числом параметров, деструкторы, функцию печати. Определить функции переназначения названия диплома и идентификационного номера.
2. Создать класс комната, которая имеет площадь. Определить конструктор и метод доступа. Создать класс однокомнатная квартира, которая содержит комнату и кухню (ее площадь), этаж (комната содержится в классе однокомнатная квартира). Определить конструкторы, методы доступа. Определить public-производный класс однокомнатных квартир разных городов (дополнительный параметр - название города). Определить конструкторы, деструктор и функцию печати.
буду очень благодарен!!
Xcontrol212
24.11.2009, 20:47
Задача по С++!
Определить класс квадратная матрица. В класс включить два конструктора для определения матрицы по количеству элементов и путем копирования другой матрицы. Предусмотреть функцию нахождения седловой точки матрицы и функцию, меняющую местами элементы матрицы, симметричные относительно побочной диагонали.
Определить класс вектор. В класс включить два конструктора для определения вектора по его размеру и путем копирования другого вектора. При задании вектора по его размеру предусмотреть его заполнение случайными числами.
Определить операции над векторами:
| формирование нового вектора так, что каждый элемент нового вектора определяется следующим образом: c[I]=(a[I]>b[I])?b[I]:a[I];
-- определить наименьший элемент вектора.
Описать параметризованный класс массив с двумя аргументами. Предусмотреть выполнение функций формирования массива, поиска заданного значения в массиве.
M.W.N.N.
26.11.2009, 02:02
как реализовать данное в консольном приложении на С?
Вводим действие допустим 4*6+3.
Поскольку только недавно начал изучать С я думал так:
Объявить строковую переменную в которой занесется 4*6+3,
потом через функцию преобразования строковых переменных в числовые atoi()
занести в числовую переменную (при объявлении переменной числовой a=4*3+2 считает нормально)
и она посчитает, но так не получается. Выводит только первый символ.
То что я пробовал:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[255];
int b;
printf("vvedite deistvie: \n");
gets(a);
b=atoi(a);
printf("Ravno: %d",b);
}
В голову пришла мысль: записывать все содержимое в txt файл искать сперва
символы * и слева и справа от найденного знака числа и перемножать их и.т.д.
далее перейти к поиску делений, суммирования. Но как это реализовать?
M.W.N.N. Си не учил, но по аналогии с делфи просто перебираешь строку читаешь каждый символ до первого действия, записываешь в массив, после записываешь какое действие там было, ищешь дальше и тп до конца строки.
Также нужны функции или процедуры на сложение вычитание умн и дел, после того как прошол строку берешь первое действие в строке и стравниваешь его с "заготовкой" например если это сложение вызваешь функцию сложения с аргументами первыми элементами массива, ответ записываешь в индекс второго эллемента и продолжаешь..
Но тут не будет превильной последовательности выполнения действий типо сначало умножение а потом сложение, но это не сложно реализовать.
ЗЫ надеюсь помог
мне никто так и не помог..(
Создать модуль из функций и процедур для благоустройства:
1 одномерного массива за ростом.
2 одномерного массива за спадением.
3 Двумерного массива за ростом (по строкам).
4 Двумерного массиваза ростом (по столбикам)
5 двумерного масива за спадением ( по строкам).
6 двумерного масива за спадением (по столбикам).
ЛифчиС5СВ
27.11.2009, 20:48
Привет всем.
Нужно сделать 3 несложные лабы, типа создать приложение, отправляющее POST-запросы и в нем применить методы противодействия перебору паролей.
Цену обсудим. Пишите в личку, кто сможет сделать.
Решить задачу Коши методом Рунге-Кутта четвертого порядка, разделив интервал на 10 частей.
y" + 3y' - y/x = x + 1
y(1,2) = 0,6
y'(1,2) = 1, [1,2; 2,2]
ichechen
28.11.2009, 16:16
А на VB делает кто ? )
А VB.NET пойдет?
lamer811
28.11.2009, 16:53
Всем привет...
Задачки по математике в матлабе кто нить решает???
пишите в 446524962
О цене договоримся
Добрый день всем умам этого портала, хочу попросить Вас о помощи так как в асемблере особо умом не блещу, а на носу акредетация моего техникума и контрольные уже выдают. Кто может помогите пожалуйста решить данное задание:
ASM
---------
Вычислить Х= - (С + 2А + 4В + В),
где А, В, С, Х- целые знаковые числа занимающие слово, на
программу реализующую данную формулу.
Распишем формулу по отдельным операциям:
АХ ← А ; значение А в регистре АХ
АХ ← 2 *( АХ ) ; 2А в АХ
АХ ← ( АХ ) + А ; 3А в АХ
ВХ ← В ; В в ВХ
ВХ ← 5 + ( ВХ ) ; В+5 в ВХ
ВХ ← (ВХ ) / 2 ; ( В+5) / 2 в ВХ
АХ ← (BX ) + ( AX ) ; 3А+( В+5 ) / 2 в АХ
АХ ← ( АХ ) - С ; 3А+( В+5 ) / 2 - С в АХ
АХ ← ( АХ ) -1 ; 3А+( В+5 )/2 - С - 1 в АХ
Х ← ( АХ ) ; 3А+( В+5 )/2 - С - 1 в Х
Кто может помогите пожалуйста
Сообственно ещё по ASM
Дан массив из 10 слов, которые вмещают целые числа, нужно заменить все негативные числа нулями. Массив байт.
------------------------
Текст программы:
data segment
max dw ?
mass dw 10,24,76,479-347,281,-24,70,124,97
data ends
code segment
assume cs: code, ds: data
start: mov ах, data
mov ds, ах ;
lea bx, mass ;
mov cx, 10 ;
mov ах [bx] ;
eg: cmp [bx], ах ;
jl no ;
mov ах [bx] ;
no: inc bx ;
inc bx ;
loop beg
mov max, ах
quit: mov ах,4C00h ;
int 21h ;
code ends
end start
Помогите пожалуйста.
Разработать блок-схему алгоритма задания
Дана целочисленная квадратная матрица n*n
1) Найти номера столбцов элементы которых образуют убывающую последовательность. Номера вывести на печать.
2) Номера выделенных столбцов возвести в квадрат и вывести на печатать, расположив по возрастанию.
буду очень благодарен если кто поможет)
>>serhio<<
29.11.2009, 19:46
Задчку в pascale помогите реализовать!
1. Дана матрица из 3 строк и 6 столбцов. Элементы каждого столбца представляют длины трех сопряженных ребер одного из 6 прямоугольных параллелепипедов. Отпечатать номер каждого столбца, которым задан параллелепипед большего объема, чем объем шара с заданным радиусом R,V=4/3ПR³ и число таких столбцов.
Syntaxys
29.11.2009, 22:58
>>serhio<< :
Program Neprogram;
Var mas:array[1..3,1..6] of real;
i,m,n,kolvo:integer;
shar,v,r:real;
Begin
// Задаем рандомно матрицу[m,n] с элементами [1,10] //
randomize;
for m:=1 to 3 do
for n:=1 to 6 do
mas[m,n]:=trunc((11-1)*random+1);
// Отображаем получившуюся матрицу //
writeln('Ispolzuemaia matrica:');
for m:=1 to 3 do
begin
writeln(' ');
for n:=1 to 6 do
begin
write(mas[m,n]);
write(' ');
end;
end;
writeln;
writeln;
// Считаем объем шара с заданным радиусом //
write('Vvedte R shara: ');
repeat
readln(r);
until r>0;
shar:=4*3.14*r*r*r/3;
writeln;
writeln('Obiem shara = ',shar);
writeln;
//проверяем произведение столбцов //
for n:=1 to 6 do
begin
v:=1;
for m:=1 to 3 do
v:=v*mas[m,n];
if v>shar then
begin
write('Stolbec ',n,' ');
kolvo:=kolvo+1;
end;
end;
writeln;
writeln;
writeln('Kolichestvo stolbcov: ',kolvo);
End.
Результат работы:
Ispolzuemaia matrica:
2 3 4 9 8 3
1 5 8 4 10 5
1 6 2 2 9 5
Vvedte R shara: 3
Obiem shara = 113.04
Stolbec 5
Kolichestvo stolbcov: 1
А VB.NET пойдет?
Эм..даж не знаю.не кодил там.Visual Studio 2008 у нас юзят.
>>serhio<<
30.11.2009, 00:13
Спс !!!!!!! Все норм работает!!!
Delphi 7
Доброй ночи. Понадобилась помощь в написании программы. Поджимает сильно время. Очень прошу помочь, завтра уже сдавать её.
Составить список, содержащий сведения об N студентах. Для каждого учащегося указать:
- фамилия;
- ИНН (идентификационный номер налогоплательщика);
- дата выдачи Свидетельства о постановке на учет в налоговом органе;
- дата рождения;
- год поступления в университет;
- курс;
- группа;
- количество семестров обучения;
- оценки каждой сессии по всем семестрам.
Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив.
Составить программу, которая обеспечивает ввод исходных данных, об-работку и вывод на экран информации в соответствии с вариантом задания, приведенного в таблице
Из таблицы: Упорядочить список студентов по среднему баллу последней сданной сессии и вывести его на экран. N = 4
Снизу приведу программу-пример указанную в методичке, может поможет чем-то.
Разработать программу для обработки информационного массива данных по группе студентов из 30 человек. Для каждого студента указаны фамилия и оценки по пяти дисциплинам. Необходимо вычислить средний балл и упорядо-чить список студентов группы по убыванию среднего балла.
PROGRAM PRIM2;
USES CRT;
TYPE
STR=RECORD
FAM: STRING [30];
B1,B2,B3,B4,B5: 2..5;
SB: REAL
END;
VAR
TBL: ARRAY [1..25] OF STR;
Y:STR;
I,J,K,M:INTEGER;
X,R:REAL;
PR:BYTE;
BEGIN
CLRSCR;
REPEAT
WRITELN ('Введите число студентов');
READLN (M);
FOR I:= 1 TO M DO
WITH TBL[I] DO
BEGIN
WRITELN('Введите фамилию');
READLN (FAM);
WRITELN('Введите пять оценок студента');
READLN (B1,B2,B3,B4,B5);
END;
FOR I:= 1 TO M DO
WITH TBL[I] DO
SB:= (B1+B2+B3+B4+B5)/5;
FOR I:= 1 TO M DO
BEGIN
K:=1;
X:=TBL[I].SB;
FOR J:=I TO M DO
IF TBL[J].SB >=X THEN
BEGIN
K:=J;
X:=TBL[J].SB;
Y:=TBL[K];
TBL[K]:=TBL[I];
TBL[I]:=Y
END;
END;
WRITELN ('Список студентов');
FOR I:=1 TO M DO
WITH TBL[I] DO
WRITELN (FAM, SB:4:2);
WRITELN ('Обработать еще один список? 1-да 0-нет');
READLN(PR);
UNTIL PR=0
END.
Заранее спасибо :rolleyes:
StealthMaster
30.11.2009, 03:39
Delphi 7
Доброй ночи. Понадобилась помощь в написании программы. Поджимает сильно время. Очень прошу помочь, завтра уже сдавать её.
Составить список, содержащий сведения об N студентах. Для каждого учащегося указать:
- фамилия;
- ИНН (идентификационный номер налогоплательщика);
- дата выдачи Свидетельства о постановке на учет в налоговом органе;
- дата рождения;
- год поступления в университет;
- курс;
- группа;
- количество семестров обучения;
- оценки каждой сессии по всем семестрам.
Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив.
Составить программу, которая обеспечивает ввод исходных данных, об-работку и вывод на экран информации в соответствии с вариантом задания, приведенного в таблице
Из таблицы: Упорядочить список студентов по среднему баллу последней сданной сессии и вывести его на экран. N = 4
Снизу приведу программу-пример указанную в методичке, может поможет чем-то.
Разработать программу для обработки информационного массива данных по группе студентов из 30 человек. Для каждого студента указаны фамилия и оценки по пяти дисциплинам. Необходимо вычислить средний балл и упорядо-чить список студентов группы по убыванию среднего балла.
PROGRAM PRIM2;
USES CRT;
TYPE
STR=RECORD
FAM: STRING [30];
B1,B2,B3,B4,B5: 2..5;
SB: REAL
END;
VAR
TBL: ARRAY [1..25] OF STR;
Y:STR;
I,J,K,M:INTEGER;
X,R:REAL;
PR:BYTE;
BEGIN
CLRSCR;
REPEAT
WRITELN ('Введите число студентов');
READLN (M);
FOR I:= 1 TO M DO
WITH TBL[I] DO
BEGIN
WRITELN('Введите фамилию');
READLN (FAM);
WRITELN('Введите пять оценок студента');
READLN (B1,B2,B3,B4,B5);
END;
FOR I:= 1 TO M DO
WITH TBL[I] DO
SB:= (B1+B2+B3+B4+B5)/5;
FOR I:= 1 TO M DO
BEGIN
K:=1;
X:=TBL[I].SB;
FOR J:=I TO M DO
IF TBL[J].SB >=X THEN
BEGIN
K:=J;
X:=TBL[J].SB;
Y:=TBL[K];
TBL[K]:=TBL[I];
TBL[I]:=Y
END;
END;
WRITELN ('Список студентов');
FOR I:=1 TO M DO
WITH TBL[I] DO
WRITELN (FAM, SB:4:2);
WRITELN ('Обработать еще один список? 1-да 0-нет');
READLN(PR);
UNTIL PR=0
END.
Заранее спасибо :rolleyes:
type
TStudent = record
LastName: string;
ITIN: string;
ITINDate: TDate;
Birthday: TDate;
EnterDate: integer;
Cource: integer;
Group: integer;
SemesterNumber: integer;
Marks: array of integer; // оценки за последнюю сессию
AverageMark: double;
end; // TSudent
var
Students: Array of TStudent;
procedure AddMark(M: integer; Number: integer);
var
tmp: integer;
begin
if (M in [2..5]) then
begin
tmp := Length(Students[Number].Marks);
SetLength(Students[Number].Marks, tmp + 1);
Students[Number].Marks[tmp] := M;
end;
end;
procedure AddStudent(pLastName: string; pITIN: string; pITINDate, pBirthDay: TDate;
pEnterDate, pCource, pGroup, pSemesterNumber: integer;
M1: integer = 0; M2: integer = 0; M3: integer = 0;
M4: integer = 0; M5: integer = 0);
var
tmp, stmp: integer;
i: integer;
begin
tmp := length(Students);
SetLength(Students, tmp + 1);
with Students[tmp] do
begin
LastName := pLastName;
ITIN := pITIN;
ITINDate := pITINDate;
Birthday := pBirthDay;
EnterDate := pEnterDate;
Cource := pCource;
Group := pGroup;
SemesterNumber := pSemesterNumber;
AddMark(M1, tmp);
AddMark(M2, tmp);
AddMark(M3, tmp);
AddMark(M4, tmp);
AddMark(M5, tmp);
stmp := length(Marks);
AverageMark := 0;
if (stmp <> 0) then
for i := 0 to stmp - 1 do
AverageMark := AverageMark + Marks[i]/stmp;
end; // with
end;
procedure QSort(Left, Right: integer);
// Left, Right - границы сортируемой области
var
i, j: integer;
x: double;
tmp: TStudent;
begin
i := Left;
j := Right;
// в качестве опорного элемента выбираем медиану сортируемой области
x := Students[(Left + Right) div 2].AverageMark;
repeat
while x > Students[i].AverageMark do
inc(i);
while x < Students[j].AverageMark do
dec(j);
if i <= j then
begin
tmp := Students[i];
Students[i] := Students[j];
Students[j] := tmp;
inc(i);
dec(j);
end;
until i>j;
if i < Right then QSort(i, Right);
if j > Left then QSort(Left, j);
end;
procedure TForm1.ButtonAddClick(Sender: TObject);
begin
AddStudent(edName.text, edITIN.text, DateTimePickerITIN.Date, DateTimePickerBithday.Date,
StrToInt(edYear.text), StrToInt(edCource.text), StrToInt(edGroup.text),
StrToInt(edSNumber.text), StrToInt(edM1.text), StrToInt(edM2.text), StrToInt(edM3.text),
StrToInt(edM4.text), StrToInt(edM5.text));
end;
procedure TForm1.ButtonAddClick(Sender: TObject);
begin
QSort(0, length(Students)-1);
end;
Может быть что-то забыл, это всегда можно быстро подправить)
Спасибо мен и на этом, но тут возникла проблема. Задание выполняется в консольном приложении, тоесть без всяких компонентов, а там прога уже начинает ругаться с tdate :( Да и нельзя использовать процедуру, потому как процедуры и функции не были пройдены, препод не поймет просто как я сделал... :(
StealthMaster
30.11.2009, 16:06
Ну вместо даты в формате TDate можно использовать строку) Главное определиться со способом хранения и ввода/вывода информации.
А если без процедур, то можно сделать так:
...
var
choise: char;
begin
repeat
{ Ввод всех данных о студенте }
{ фактически содержимое процедуры AddStudent }
запрос на продолжение или прекращение ввода типа "y/n" после i-той операции ввода данных
until choise = 'y';
{ Содержимое процедуры QSort }
{ вывод результата }
end.
Ясно. Дохимичили твой код, всё пашет. Спасибо еще раз
>>serhio<<
30.11.2009, 19:29
Помогите разобраться с задачкай на Turbo Pascale!!!
Задача:
Сформировать квадратные матрицы {а ij} n,m, {b ij} k,l, где i<=(n,k), j<=(m,l), элементы которых определяются случайно из диапазона вещественных чисел от -50 до 50. Фактическое число строк (n,k) и столбцов (m,l) каждой матрицы вводить с клавиатуры. Создатть процедуру.
Epic wave
30.11.2009, 20:55
Может есть у кого рабочая программа рисующая элементарную гистограмму? C++
Помогите кто то с асемблером посты №1931,1932 пожалуйста.
Syntaxys
30.11.2009, 22:44
>>serhio<<
Если я правильно понял задание, то так:
Program Neprogram;
type A=array [0..666,0..666] of real;
B=array [0..666,0..666] of real;
// Процедура ввода значений в массивы //
Procedure vvod(Var x:A;Var x1:B);
Var n,m,k,l,kolvo:integer;
begin
// Определяем кол-во эл-ов массива 1. (строк и столбцов) //
kolvo:=0;
repeat
write('Vvedite kolvo elementov massiva [1..x,1..x]:');
readln(kolvo);
until kolvo>0;
// Заполняем массив 1 //
for n:=1 to kolvo do
for m:=1 to kolvo do
begin
x[n,m]:=trunc((-51-50)*random+50);
end;
// Выводим на экран массив 1 //
writeln('Poluchivshaiasa matrica: ');
writeln;
for n:=1 to kolvo do
begin
writeln(' ');
for m:=1 to kolvo do
begin
write(x[n,m]);
write(' ');
end;
end;
writeln;
writeln;
// Определяем кол-во эл-ов массива 2. (строк и столбцов) //
kolvo:=0;
repeat
write('Vvedite kolvo elementov massiva [1..x,1..x]:');
readln(kolvo);
until kolvo>0;
// Заполняем массив 2 //
for k:=1 to kolvo do
for l:=1 to kolvo do
begin
x[k,l]:=trunc((-51-50)*random+50);
end;
// Выводим на экран массив 2 //
writeln('Poluchivshaiasa matrica: ');
writeln;
for k:=1 to kolvo do
begin
writeln(' ');
for l:=1 to kolvo do
begin
write(x[k,l]);
write(' ');
end;
end;
end;
Var x:A;
x1:B;
n,m:integer;
Begin
vvod(x,x1);
readln;
end.
Результат работы:
Vvedite kolvo elementov massiva [1..x,1..x]:4
Poluchivshaiasa matrica:
10 -28 23 -50
-9 -47 -26 -19
39 -16 -45 17
-7 -29 35 13
Vvedite kolvo elementov massiva [1..x,1..x]:4
Poluchivshaiasa matrica:
3 23 -45 -39
-28 -8 -11 -17
49 9 -44 28
34 -46 -19 -50
Люди помогите пож найти ошибку.(Pascal)
Даны три вещественных числа. Составить процедуру нахождения целой части числа. Найти сумму преобразованных чисел.
Program Pr1;
var x,y,z:real;
p:integer;
Procedure my(x,y,z:real; var a,b,c:integer);
begin
a:=int(x);
b:=int(y);
c:=int(z);
end;
begin
writeln('BBeguTe x,y,z');
readln(x,y,z);
my(x,y,z);
writeln('OkpyrJIuJIu x=',x);
writeln('OkpyrJIuJIu y=',y);
writeln('OkpyrJIuJIu z=',z);
p:=x+y+z;
writeln('OTBET: ',p);
end.
Заранее спасибо.
p.s. В паскале я недавно, сори если туплю :)
Доброго времени суток!
Не могу написать часть кода на С это strtok.
Очень нужна помощь.
#include <stdio.h>
int SimSlovo( char *Slovo);//prototip
int strlen(char *s);
char *strtok (char * str, const char * tokens);
int strlen(char *s)
{
char* p=s;
while (*s) s++;
return s-p;
}
char *strtok (char *str, const char *tokens)
{
static char *ptr = NULL; //prisvaivaem znachenie 0
if (str) ptr = str; //esli stroka to ptr= stroka
for (ptr; *ptr>0; ptr++) //proverki vvedennogo
if (!ptr) return NULL;
for (char *p = ptr; *ptr; ptr++) //(znachenie uk stroki;ukazateli \0;uvelichenie znach stroki)
for (const char *tk = tokens; *tk; tk++)//ukazateli const tk na tokkens
if (*ptr == *tk) //sravnenie simvola stroki
{
*ptr++ = 0;
return p;
}
return NULL;
}
int SimSlovo(char *Slovo) //function
{
int i=0,j=0;
j=strlen(Slovo)-1; //prisvoenie indeksa poslednei bukvi
for (i=0;i<=j;i++,j--) //chitaem slovo s dvuh storon
{ //do vstrechi
if (Slovo[i]!=Slovo[j]) return 1; //ne ravno znachit 0
}
return 0;//ravno 1
}
int main()
{
char *input;//stroka sodergachaia simvoli
char *deltel=" ,"; //simvol ogranichiteli
char strok[1000];
char edel;
int len;
int pos;
input=strok;
gets(strok);
len=strlen(input); //opredeliaem dlinu stroki (eto budet konec stroki)
pos=0; //nachalo stroki
while(len>pos)
{
input = strtok(input,deltel);//nahodim simvol ' ,' v input
pos=pos+strlen(input)+1; //i berem ukazatel na sleduiuschii simvol
//pozicia zaverscheniia
if(*input ) //esli v stroke schtoto esti
{
if ( SimSlovo(input)==1) //poluchaem resultat function
{
printf(" ");
printf(input); //vivodim naidenii
}
input+=strlen(input)+1;
/*perehodim k sleduiuchemu slovu i zaverschaem
proverku prediduchego */
}
}
return 0;
}
Syntaxys
01.12.2009, 12:51
Odio
Program Pr1;
var x,y,z:real;
Procedure my(var a,b,c:real);
begin
a:=trunc(a);
b:=trunc(b);
c:=trunc(c);
end;
begin
writeln('BBeguTe x,y,z');
readln(x,y,z);
my(x,y,z);
writeln('OkpyrJIuJIu x=',x);
writeln('OkpyrJIuJIu y=',y);
writeln('OkpyrJIuJIu z=',z);
writeln('OTBET: ',x+y+z);
end.
Результат:
BBeguTe x,y,z
16.4444
-15.222
18.9876
OkpyrJIuJIu x=16
OkpyrJIuJIu y=-15
OkpyrJIuJIu z=18
OTBET: 19
Visual Delphi 7
инструментальные методы визуального программирования:
Построить блок-схему программы, описать последовательность визуального программирования и навести листинг главного модуля программы для табулирования функции:
z:=(2*(x*x)+3*j-5)*(2*(x*x)+3*j-5)*(2*(x*x)+3*j-5)/12*j
при каждом значении x и j, если x приобретает следующих значений 2,4,6, а j - 1,2,3,4.
_stranger_
01.12.2009, 20:02
Помогите пожалуйста решить задачу на с/с++:
Выполнить перестановку столбцов и строк двумерного массива так, чтобы мини-мальный элемент приобрел индекс 1.1 (левый верхний). Выводить массив на экран на ка-ждом шаге с комментариями действий.
утро доброе, помогите с массивами, а то нифига не понимаю(
на С++
нужно написать программу которая определяет сумму четных строк матрицы и нечетный строк матрицы 5*7.
помогите плз.
_stranger_
02.12.2009, 16:45
спасибо всем) я сам сделал) но подскажите пожалуйста как сделать эту: Дан текст, определить, сколько в нем предложений. Вывести на экран самое длинное.
NigHT_0WL
02.12.2009, 17:22
спасибо всем) я сам сделал) но подскажите пожалуйста как сделать эту: Дан текст, определить, сколько в нем предложений. Вывести на экран самое длинное.
сначала загоняем переменную в функцию подобную split(".", $inputText), в ПХП, которая разбивает $inputText - введенную строку в массив по разделителю (.) точка. Ведь предложение от предложения отделяет точка?)) потом остаеться самое простое - использовать что нить, чем можно перебрать количество символов в каждом предложении - strlen() по каждому элементу массива предложений. Создать массив длин предложений и найти наибольший элемент.
>>serhio<<
02.12.2009, 17:28
Нужна помощь не могу найти ошибку с/с++
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void){
clrscr ();
printf("LW#1");
int i=1;
float b, e,S=0,u=2/b;
do{
printf("Vvedite tochnost e=");
scanf("%g",&e);
}while((e>0)&&((e<1));
while ((fabs(u)>e)&&(i<1000)){
S+=u;
u=u*(i+2/(-b*(i++));
}
printf("Symma ravna %g\nslogeno %i elementov",S,i);
getch ();
}// atof
Помогите написать подобное:
1. Необходимо чтобы информация, набираемая на клавиатуре, записывалась в файл с именем a.txt.
2. Дан текстовый файл. Необходимо ввести с клавиатуры строку символов и выдавать на экран номер позиции в текстовом файле, начиная с которой эта подстрока в нём встречается, и соответствующее сообщение, если этой подстроки нет.
Нужно до завтра сдать, а ничего путного не выходит. В первом случае в файл a.txt кроме введённых в консоль символов попадают ещё какието произвольные данные потока.
2mas0n
на чём писать то?))
Masson фильтруй данные, а 2 пункт
- просто возьми событие onChange edita и провеь есть ли в нем что либо, после ищи это функцией pos() в логе.
Вас преподы кейлогеры писать заставляют))
Здравствуйте, нужна помощь. Есть dll'ка в которой написаны функции подпрограмм, надо для этой dll'ки написать прогу которая ее будет использовать, т.е. просто для проверки работоспособности подпрограмм dll. Вот сама dll и ее исходники на delphi 7:
http://ifolder.ru/15284460. Буду очень благодарен за любую помощь.
Xrun позыкал твой dll если ты его сам писал то проблемм не возникнет
exports Nr1,Nr2,Nr3,Form,DivMatr; вот эти функции добавятся в основное приложение.
В основном приложении в uses добавь NormMatr, после создай свой экземпляр типа:
Tmatr=array[1..nmax,1..nmax] of real; и
Tvector=array[1..2*nmax] of real;
После проделай с ними функции которые в длл прописаны, к сожалению не разобрался зачем они но думаю ты знаешь..
А как в uses добавить NormMatr? Там пишет что то типа не найден NormMatr.dcu
Все файлы котрые принадлежат етой ерунде положи в папку проекта
StealthMaster
03.12.2009, 23:41
Как я понял, нужно использовать функции из dll...
function Nr1(x:Integer;y:Integer;Matr:Tmatr):Real; stdcall; external 'NormMatr.dll';
это статический метод подключения DLL; необходимо убедиться, чтобы нужная дллька лежала в папке с исполняемым файлом или в "C:\WINDOWS\system"
а в uses указывать dll не нужно.
Итак,вот и пришло мое время обратиться за помощью.
Вот архив,там 2 *.pdf файла,в них 12 лаботарорных работ.Мой вариант - 7 .Тоесть,12 заданий в общем.Пршу помощи в решении данных задачек.Спасибо.
Архив (http://dump.ru/file/3876712)
Еще раз,всем большое спасибо.
Есть 4 задачи на класы(перегруз функций итд)
знающему человеку роботы-1 день)
бюджет 30$ (если всё быстро чётко и с коментами то 35$)
сроки-10 дней!)
ICQ 396-731 Деньги даю с протектом после предо ставленой работы просматриваю её(на работоспособность) и даю вам код.
Человек взялся Уже не актуально!
Здравствуйте!!! Нужна Ваша помошь!
Дали такое задание на Pascale: используя подпрограммы-функции в массивах Х и У найти минимумы с учетом повторений и поменять их местами.
Вроде ничего сложного. Написал код, все работает!
Но никак не пойму, как переделать программу, чтобы получились функции...
Program MinXY;
Uses Crt;
Const
MSize=10;
n=2;
m=3;
Var
x,y:array[1..n, 1..m] of Integer;
{n,m:Integer;}
tmp:Integer;
i,j:Integer;
PosXx, PosXy:Integer;
PosYx, PosYy:Integer;
ValX, ValY:Integer;
{Function SearchMin:Integer;}
Begin
ClrScr;
{********************************************}
Writeln('Ввод массива Х!!!');
for i:=1 to n do
for j:=1 to m do
begin
Write('x[',i,'][',j,'] -> ');
Readln(x[i][j]);
end;
Writeln;
Writeln('Ввод масива Y!');
for i:=1 to n do
for j:=1 to m do
begin
Write('y[',i,'][',j,'] -> ');
Readln(y[i][j]);
end;
{********************************************}
Writeln;
Writeln('Массив Х!');
for i:=1 to n do
begin
for j:=1 to m do
Write(x[i][j],' ');
Writeln;
end;
Readln;
Writeln('Массив Y!');
for i:=1 to n do
begin
for j:=1 to m do
Write(y[i][j],' ');
Writeln;
end;
Readln;
{********************************************}
ValX:=x[1,1];
PosXx:=1;
PosXy:=1;
for i:=1 to n do
begin
for j:=1 to m do
if x[i,j]<=ValX then
begin
ValX:=x[i,j];
PosXx:=i;
PosXy:=j;
end;
end;
Writeln('Найден Минимимум в массиве Х!');
Writeln('Значение минимума: ',ValX);
Writeln('Строка ',PosXx);
Writeln('Столбец ', PosXy);
Readln;
ValY:=y[1,1];
PosYx:=1;
PosYy:=1;
for i:=1 to n do
begin
for j:=1 to m do
if y[i,j]<=ValY then
begin
ValY:=y[i,j];
PosYx:=i;
PosYy:=j;
end;
end;
Writeln('Найден Минимимум в массиве Y!');
Writeln('Значение минимума: ',ValY);
Writeln('Строка ',PosYx);
Writeln('Столбец ', PosYy);
Readln;
{********************************************}
tmp:=x[PosXx,PosXy];
x[PosXx,PosXy]:=y[PosYx,PosYy];
y[PosYx,PosYy]:=tmp;
{********************************************}
Writeln;
Writeln('Массив Х!');
for i:=1 to n do
begin
for j:=1 to m do
Write(x[i][j],' ');
Writeln;
end;
Readln;
Writeln('Массив Y!');
for i:=1 to n do
begin
for j:=1 to m do
Write(y[i][j],' ');
Writeln;
end;
Readln;
End.
Я так понимаю должно наверно быть три функции:
1. Ввод массива (Х и У),
2. Поиск минимумов в массивах Х и Y
3. Замена минимумов местами
Подскажите, как можно переделать, а то не совсем разорбрался с функциями...
Заранее огромное спасибо!!!!!
Syntaxys
05.12.2009, 00:51
Veman
Program MinXY;
Uses Crt;
Const
MSize=10;
n=2;
m=3;
Type mas=array[1..n, 1..m] of Integer;
Var
x,y:mas;
{n,m:Integer;}
tmp:Integer;
i,j,Vvodim,iskat,zamenit:Integer;
PosXx, PosXy:Integer;
PosYx, PosYy:Integer;
ValX, ValY:Integer;
Function Vvod(Var x:mas; Var y:mas):integer;
Begin
ClrScr;
{********************************************}
Writeln('Ввод массива Х!!!');
for i:=1 to n do
for j:=1 to m do
begin
Write('x[',i,'][',j,'] -> ');
Readln(x[i,j]);
end;
Writeln;
Writeln('Ввод массива Y!');
for i:=1 to n do
for j:=1 to m do
begin
Write('y[',i,'][',j,'] -> ');
Readln(y[i,j]);
end;
{********************************************}
Writeln;
Writeln('Массив Х!');
for i:=1 to n do
begin
for j:=1 to m do
Write(x[i,j],' ');
Writeln;
end;
Readln;
Writeln('Массив Y!');
for i:=1 to n do
begin
for j:=1 to m do
Write(y[i,j],' ');
Writeln;
end;
Readln;
End;
///////////////////////////////////////////////////////
Function Poisk(x:mas; y:mas; Var PosXx:integer; Var PosXy:integer):integer;
Begin
ValX:=x[1,1];
PosXx:=1;
PosXy:=1;
for i:=1 to n do
begin
for j:=1 to m do
if x[i,j]<=ValX then
begin
ValX:=x[i,j];
PosXx:=i;
PosXy:=j;
end;
end;
Writeln('Найден минимум в массиве Х!');
Writeln('Значение минимума: ',ValX);
Writeln('Строка ',PosXx);
Writeln('Столбец ', PosXy);
Readln;
ValY:=y[1,1];
PosYx:=1;
PosYy:=1;
for i:=1 to n do
begin
for j:=1 to m do
if y[i,j]<=ValY then
begin
ValY:=y[i,j];
PosYx:=i;
PosYy:=j;
end;
end;
Writeln('Найден минимум в массиве Y!');
Writeln('Значение минимума:',ValY);
Writeln('Строка ',PosYx);
Writeln('Столбец ', PosYy);
Readln;
end;
/////////////////////////////////////////////////////
Function Zamena(Var x:mas; Var y:mas; PosXx,PosYx:integer):integer;
Begin
tmp:=x[PosXx,PosXy];
x[PosXx,PosXy]:=y[PosYx,PosYy];
y[PosYx,PosYy]:=tmp;
End;
Begin
vvodim:=Vvod(x,y);
iskat:=poisk(x,y,PosXx,PosXy);
zamenit:=zamena(x,y,PosXx,PosYx);
Writeln;
Writeln('Массив Х!');
for i:=1 to n do
begin
for j:=1 to m do
Write(x[i,j],' ');
Writeln;
end;
Readln;
Writeln('Массив Y!');
for i:=1 to n do
begin
for j:=1 to m do
Write(y[i,j],' ');
Writeln;
end;
Readln;
End.
Единственное что не помню, можно ли функции както по-другому вызвать.
mr_walker
05.12.2009, 00:59
На делфи!
Основное задание:
Написание ftp-клиента. Задача: Написать прикладную программу, которая способна выполнять базовые функции ftp-клиента, тобто вміє працювати з ftp-серверами. Функциональность : программа должна поддерживать следующие стандартные:
*Соединение
*Аутентификация
*Навигация по директориях сервера (cd, dir/ls, и т.д.) *Получение и отправление файлов (в т.ч. і в passive mode)
*Розсоединение
Подсказка: большинство вышеуказаных функций можна исполнить,
используя telnet.
Фактически, нужно написать программу
с интерфейсом, которая умеет получать\отправлять TCP поток по заданому порту. Иными словами - telnet.
Задание(вариант3): Реализовать сохранение паролей, для удобства.
ребята помогите плз... срочно надо... с меня причитается....
Veman
Единственное что не помню, можно ли функции както по-другому вызвать.
Огромное спасибо!!!! Очень помогли!!
Плюсы пока не могу ставить! Но вам Респект!!!! :)
Плюсы пока не могу ставить! Но вам Респект!!!!
Твои плюсы отображаются только если ты состоишь в какой то группе!
Syntaxys
06.12.2009, 01:19
GenTao, на визе не пишу, но сподобными лабами советую выкладывать мат.обоснование или как минимум формулы.
Weman, пожалуйста. Насчет плюсов не парься. Плюсы это хорошо конечно, но не в них суть.
RealMarkus
06.12.2009, 05:26
Боюсь даже спрашивать , но никто в QBasic не разбирается ?
qwert135
06.12.2009, 16:05
народ.помогите написать прогу плиз.Вот задание (язык Паскаль):
Разработать алгоритм и составить программу вычисления таблицы значений функции, заданной в виде разложения в ряд. Значение функции вычислять с точностью e>0, т.е. вычисление суммы членов ряда необходимо прекратить, когда абсолютная величина очередного члена ряда разложения окажется меньше e: | Aк | <e.
При вычислении очередного члена целесообразно воспользоваться рекурентным выражением:
Ак+1=Ск*Ак; к= 0, 1, 3, ...,
где ак - некоторый к-ый член ряда; ак+1 - следующий к+1-ый член ряда; ск - коэффициент, определяемый номером к.
При составлении программы необходимо по возможности воспользоваться операторами организации циклов WHILE, REPEAT, FOR.
Границы интервала вычислений функций a и b, величина шага изменения аргумента h и точность вычисления функции e задаются при вводе. На печать выводятся номер по порядку, значение аргумента, соответствующие ему, значение функции и номер члена ряда, на котором закончилось вычисление значение функции, в форме таблицы:
№ Х f (x) № чл.р.
1
2
3
...
сама функция: f(x)=1/x+2*x[(1/(x^2+PI^2))+(1/x^2+4*PI^2))+...+1/(x^2+k^2*PI^2))...]
Заранее спасибо! :)
>>serhio<<
06.12.2009, 21:47
Помогите разобраться на Pascale нужно реализовать две задачки !!!
1.Определить наибольшее число идущих подряд положительных элементов в массиве А
2.Найти min элемент одномерного массива описав процедуры ввода элементов массива, процедура нахождения min элемента массива.
Syntaxys
06.12.2009, 22:45
>>serhio<<
Program Neprogram;
type
mas=array[1..999]of integer;
var
i,kolvo,elementov,max_naideno:integer;
m:mas;
Procedure Vvod(Var m:Mas; Var kolvo:integer); //ввод массива
Var i:integer;
begin
randomize;
repeat
write('Vvedite kolvo elementov:');
readln(kolvo);
until kolvo>0;
for i:=1 to kolvo do
Begin
m[i]:=trunc((-9-9)*random+9);
write(m[i]);
write(' ');
end;
end;
Begin
vvod(m,kolvo);
elementov:=1; //считаем кол-во подряд идущих больше 0
max_naideno:=1; //максимально подряд идущих больше 0
writeln;
for i:=2 to kolvo do
BEGIN
if m[i]>0 then
begin
elementov:=elementov+1;
//Строку ниже удали, если не хочешь чтоб отображалось сравнение элементов
writeln('Element ',m[i-1], ' and element ', m[i],' = ', elementov);
end
else
begin
if max_naideno<elementov then
begin
max_naideno:=elementov;
elementov:=1;
end;
elementov:=1;
end;
if (i=kolvo) and (max_naideno<elementov)then
max_naideno:=elementov;
end;
writeln;
writeln('Samaya dlinnaya posledovatelnost > 0 :',max_naideno);
end.
Результат работы:
Vvedite kolvo elementov:20
6 0 2 4 -1 5 5 -4 0 7 0 -6 5 1 0 8 2 -2 -4 -3
Element 0 and element 2 = 2
Element 2 and element 4 = 3
Element -1 and element 5 = 2
Element 5 and element 5 = 3
Element 0 and element 7 = 2
Element -6 and element 5 = 2
Element 5 and element 1 = 3
Element 0 and element 8 = 2
Element 8 and element 2 = 3
Samaya dlinnaya posledovatelnost > 0 :3
№2
Program Neprogram;
Type Mas= Array[1..100] of Integer;
var i,kolvo: integer;
x:mas;
// Процедура ввода элементов
Procedure vvod(Var x:mas; Var kolvo: integer);
Begin
randomize;
repeat
write('Vvedite kolvo elementov:');
readln(kolvo);
until kolvo>0;
for i:= 1 to kolvo do
begin
x[i]:= random(20)- 10;
write(x[i],' ');
end;
writeln;
end;
// Процедура поиска минимального элемента
Procedure poisk(x:mas; kolvo:integer);
Var min:integer;
Begin
min:=x[1];
for i:= 2 to kolvo do
if x[i]<min then
min:=x[i];
writeln('Minimalnii element: ', min);
End;
Begin
vvod(x,kolvo);
poisk(x,kolvo);
end.
Результат работы:
Vvedite kolvo elementov:5
-10 8 -5 -7 -4
Minimalnii element: -10
Помогите разобраться на Pascale нужно реализовать две задачки !!!
1.Определить наибольшее число идущих подряд положительных элементов в массиве А
const MasSize= 20;
var A: Array[1..MasSize] of Integer;
i: integer; cur,res: integer;
begin
randomize;
{Инициализация массива случайными числами}
for i:= 1 to MasSize do begin
A[i]:= random(20)- 10;
write(A[i],' ');
end;
writeln;
{Обработка}
for i:= 1 to MasSize do
begin
if A[i]> 0 then inc(cur) else cur:= 0;
if cur> res then res:= cur;
end;
{Вывод результата}
writeln(res);
readln
end.
qwert135
06.12.2009, 22:54
Я так понял мою прогу врядле кто нибудь напишет:(
Syntaxys
06.12.2009, 22:59
qwert135, пиши алгоритм.
Боюсь даже спрашивать , но никто в QBasic не разбирается ?
Я года 4 назад писал
Могу попробовать вспомнить
mr_walker
07.12.2009, 00:19
Пост №1969
никто не поможет?
qwert135
07.12.2009, 00:51
Вводим интервал от [а,b],вводим величину шага h, h=(b-a)/n,где n любое натуральное число и точность вычислений е(достаточно маленькое число) .Вычисление функции начинается с х=а и так с шагом h до b будут производиться вычисления функции x прин.[a,b], и до тех пор пока |Ak| не станет меньше е.Ak=1/(x^2+(k^2)*(pi^2)).Произведенные вычисления должны быть выведены в виде таблицы.Первый столбец- номер по порядку(t),второй-значение х,третий-f(x),четвертый-номер члена ряда [a,b].
Syntaxys
07.12.2009, 15:22
Примерно так?
1.Вводим a,b
2.Вводим n (целое, >0 ?)
Вводим e (кол-во знаков после , ?)
считается h=(b-a)/n
3.х:=а
4.От a дo b считаем ф-ию:
если а>b, то завершаем подсчет.
f(x)=уравненние ф-ии то какое?
x[i,4]:=i
x[i,2]:=x
x[i,3]:=f(x)
x[i,4]:=i
х:=х+h
если (1/(x^2+(k^2)*(pi^2)))<e, , то завершаем подсчет.
5.Выводим таблицу.
Не понял про Первый столбец- номер по порядку(t),четвертый-номер члена ряда [a,b].
В чем отличие?
С++ кто шарит сделайте пожалуйста, за мной не заржавеет:
--------------------------------------------------------------------------------
Вычислить значение функции в, развив функци. sh(x) в ряд Тейлора. Аргумент x изменяется от 0 до 3 с шагом 0,5. Определить погрешность
y = { sh(x) +sh(x*x), 0<=x<=1
y = {(sh*sh)*(x)/sh*(x+2), 1<x<=2
---------------------------------------------------------------------------------
Нужно сделать что б показывало график функции.
+ Комментарий к каждому ряду.
Крайние строки сегодня на вчера вообщем нужно по зарез.
mr_walker
07.12.2009, 21:53
Пост №1969
плииз... могу отблагодарить разве семизнаком и аватарками....
qwert135
07.12.2009, 21:58
Примерно так?
1.Вводим a,b
2.Вводим n (целое, >0 ?)
Вводим e (кол-во знаков после , ?)
считается h=(b-a)/n
3.х:=а
4.От a дo b считаем ф-ию:
если а>b, то завершаем подсчет.
f(x)=уравненние ф-ии то какое?
x[i,4]:=i
x[i,2]:=x
x[i,3]:=f(x)
x[i,4]:=i
х:=х+h
если (1/(x^2+(k^2)*(pi^2)))<e, , то завершаем подсчет.
5.Выводим таблицу.
Не понял про Первый столбец- номер по порядку(t),четвертый-номер члена ряда [a,b].
В чем отличие?
блин,забыл написать основу проги я написал,подскажи как все это в виде таблицы вывести.Первый столбец-просто номера по порядку(1,2,3 и так далее),второй столбец-значение "х",третий столбец-значение "f(x)",четвертый столбец-номер члена ряда на котором останавливается вычисление. По поводу твоих вопросов. n это константа,допустим n=2. Вычисление заканчивается когда abs(Ak)<e(e-это точность вычислений,мы ее вручную вводим,допустим 0.001). h -это величина шага
qwert135
07.12.2009, 22:01
Syntaxys,можешь дать мне свое мыло,я тебе вышлю нормальный текст с заданием и ту часть проги,которую я уже написал.
jecka3000
07.12.2009, 22:10
язык си шарп
Условие:
Определить класс с методом, который вычисляет и возвращает количество нулевых строк (т.е. строк, состоящих из одних нулей) в квадратной матрице целого типа произвольных размеров. Даны две квадратные матрицы размером NxN. Значение N ввести с клавиатуры. Заполнить обе матрицы путем ввода с клавиатуры. Выдать на экран построчно ту матрицу, который имеет больше нулевых строк. Если таких строк в матрицах одинаковое количество, вывести любую из них.
С меня стопиццот плюсафф))
cel1697i845
08.12.2009, 01:13
язык си шарп
Условие:
Определить класс с методом, который вычисляет и возвращает количество нулевых строк (т.е. строк, состоящих из одних нулей) в квадратной матрице целого типа произвольных размеров. Даны две квадратные матрицы размером NxN. Значение N ввести с клавиатуры. Заполнить обе матрицы путем ввода с клавиатуры. Выдать на экран построчно ту матрицу, который имеет больше нулевых строк. Если таких строк в матрицах одинаковое количество, вывести любую из них.
С меня стопиццот плюсафф))
Если правильно понял то вот:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(" Введите размер матрицы");
int N = Convert.ToInt32(Console.ReadLine());
int[,] m1 = new int[N, N];
int[,] m2 = new int[N, N];
int i1, j1, p1, p2, r = 0;
p1 = 0; p2 = 0;
Console.WriteLine("Матрица 1");
for (i1 = 0; i1 < N; i1++) // вводим первую матрицу
{
for (j1 = 0; j1 < N; j1++)
{
m1[i1, j1] = Convert.ToInt32(Console.ReadLine());
if ((m1[i1, j1] != 0) || (r != 0))
{
r = 1;
}
else
{
r = 0;
}
}
if (r == 0)
{
p1++;
}
r = 0;
}
Console.WriteLine("Матрица 2");
r = 0;
for (i1 = 0; i1 < N; i1++) // вводим вторую матрицу
{
for (j1 = 0; j1 < N; j1++)
{
m2[i1, j1] = Convert.ToInt32(Console.ReadLine());
if ((m2[i1, j1] != 0) || (r != 0))
{
r = 1;
}
else
{
r = 0;
}
}
if (r == 0)
{
p2++;
}
r = 0;
}
if (p1 > p2) //если у матрицы 1 кол-во строк с 0 больше то выводим ее
{
for (i1 = 0; i1 < N; i1++) // вывод
{
for (j1 = 0; j1 < N; j1++)
{
Console.Write(m1[i1, j1]);
}
Console.WriteLine();
}
}
else
{
if (p1 < p2) //если у матрицы 2 кол-во строк с 0 больше то выводим ее
{
for (i1 = 0; i1 < N; i1++) // вывод
{
for (j1 = 0; j1 < N; j1++)
{
Console.Write(m2[i1, j1]);
}
Console.WriteLine();
}
}
else
{
if ((p1 == p2) && (p1!=0)) //если кол-во равные то выводим первую
{
for (i1 = 0; i1 < N; i1++) // вывод
{
for (j1 = 0; j1 < N; j1++)
{
Console.Write(m1[i1, j1]);
}
Console.WriteLine();
}
}
else
{
Console.WriteLine("Нет нулевых строк");
}
}
}
Console.ReadKey();
}
}
}
StealthMaster
08.12.2009, 02:32
Пост №1969
никто не поможет?
Вот тут (http://www.delphisources.ru/files/sources/internet/ftp_client_server.zip) лежат исходники ftp-клиента на Delphi.
По-моему как раз таки то, что просилось: перемещения по папкам, загрузка файлов, аутенфикация, пассивный режим.
Помогите построить график используя MFC.функция или синус или косинус, нужен параллельный перенос, сжатие и растяжение.
ПОжалуйста.
Pashkinz
08.12.2009, 09:10
Парни, выручайте!
Нужно на С несложную прогу написать на двумерные массивы..
В двумерном N * K массиве целых чисел обнулить все отрицательные элементы, если их число было меньше числа положительных элементов. В противном случае обнулить все положительные элементы.
Размеры массива задается с клавиатуры. Элементы массива вводятся случайным образом (не с клавиатуры).
Кто может помочь стукните в асю 381388764! Расплачусь денежкой=)
Pashkinz#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int mass[200][200];
using namespace std;
int main()
{
int n=0,k=0;
srand ( time(NULL) );
printf("Vvedite kolichestvo strok i stolbcov cherez probel\r\n");
scanf("%d%d", &n, &k);
int s = 0;
printf("\nIshodnij massiv\n");
for(int i=0;i<n;i++)
{
for(int j=0; j<k; j++)
{
mass[i][j]=rand() % 100 - 50;
if (mass[i][j]>0) s--;
else if (mass[i][j]<0) s++;
printf("%5d",mass[i][j]);
}
printf("\n");
}
printf("\nPoluchennij massiv:\n");
for(int i=0;i<n;i++)
{
for(int j=0; j<k; j++)
{
if (s*mass[i][j]>0) mass[i][j]=0;
printf("%5d",mass[i][j]);
}
printf("\n");
}
return 0;
}
[PASCAL] Помогите доделать лабу или исправьте что не так...
Вот текст задачи: Дайн файл f, компоненты которого являются действительными числами. Число компонентов файла кратно 4-м.
Получить в файле g среднее геометрические значения по каждым 4-м компонентам файла f.
program textfile;
uses crt;
var f:text;
s:string;
k,code,i,s1:integer;
m:array [1..20] of integer;
begin
clrscr;
assign(f,'H:\f.txt');
reset(f);
while not eof(f) do begin
readln(f,s);
writeln('Stroka deistvitelnix chisel');
writeln(s); end;
Val(s,k,code);
writeln(k);
(тут что то надо дописать)
close(f);
readln;
end.
StealthMaster
09.12.2009, 16:53
[PASCAL] Помогите доделать лабу или исправьте что не так...
Вот текст задачи: Дайн файл f, компоненты которого являются действительными числами. Число компонентов файла кратно 4-м.
Получить в файле g среднее геометрические значения по каждым 4-м компонентам файла f.
program textfile;
uses crt;
var f:text;
s:string;
k,code,i,s1:integer;
m:array [1..20] of integer;
begin
clrscr;
assign(f,'H:\f.txt');
reset(f);
while not eof(f) do begin
readln(f,s);
writeln('Stroka deistvitelnix chisel');
writeln(s); end;
Val(s,k,code);
writeln(k);
(тут что то надо дописать)
close(f);
readln;
end.
PROGRAM PTextFiles;
uses
crt;
var
f, g: text;
TmpArray: array [1..4] of real;
counter: byte;
function GetAG: real;
var
tmp: real;
i: byte;
begin
tmp := 1;
for i := 1 to 4 do
tmp := tmp * TmpArray[i];
tmp := exp(0.25*ln(tmp));
GetAG := tmp;
end;
var
tmp: real;
begin
clrscr;
counter := 0;
assign(f, 'C:\1.txt');
reset(f);
assign(g, 'C:\2.txt');
rewrite(g);
while not(eof(f)) do
begin
inc(counter);
Readln(f, TmpArray[counter]);
if (counter = 4) then
begin
tmp := GetAG;
writeln(g, tmp);
writeln(tmp);
counter := 0;
end;
end;
close(f);
close(g);
readln;
end.
Функция GetAG считает среднее геометрическое последних 4х считанных файлов.
Последовательность средних геометрических выводится на экран и записывается в файл C:\2.txt
Хотя не совсем понял фразу "Получить в файле g среднее геометрические значения по каждым 4-м компонентам файла f." Считал среднее геометрическое от частей исходной последовательности чисел, идущих друг за другом и не пересекающихся между собой.
Нужна помощь на завтра нужно сделать лабу . Буду оч благодарен если ктото сделает
Лабораторна робота № 13 Вказівниковий тип
Створити лінійний список (списки) (не менше 10 компонентів) того типу, про які йдеться мова у варіантах завдань і виконати над ними вказані дії. Вивести список на екран до та після виконання вказаних дій (якщо відбувається модифікація списку).
1. У списку слів визначити кількість слів, які починаються і закінчуються одними і тими ж самими літерами.
Лабораторная работа № 13 Вказивниковий тип
Создать линейный список (списки) (не менее 10 компонентов) того типа, о которых идет речь в вариантах задач и выполнить над ними указанные действия. Вывести список на экран до и после выполнения указанных действий (если происходит изменение списка).
1. В списке слов определить количество слов, которые начинаются и заканчиваются одними и теми же буквами.
Написать программу, которая производит подсчет параметров электрической цепи постоянного тока (ток, напряжение). Электрическая цепь строится графически, параметры ее элементов (ЭДС, резисторы,) задаются с клавиатуры.
Возьмется кто-то? За вознаграждение естественно.
Даны три квадратные матрицы A, B, C.
Найти длину вектора X={x1, x2, x3}, где x1 – сумма элементов матрицы A; x2 – сумма элементов матрицы B; x3 – сумма элементов матрицы C. Вычислить сумму элементов матрицы оформить в виде подпрограммы – функции.
Нужна помощь :)
В delphi :)
Спасибо :)
StealthMaster, уфф, спс:)
Даны три квадратные матрицы A, B, C.
Найти длину вектора X={x1, x2, x3}, где x1 – сумма элементов матрицы A; x2 – сумма элементов матрицы B; x3 – сумма элементов матрицы C. Вычислить сумму элементов матрицы оформить в виде подпрограммы – функции.
Нужна помощь :)
В delphi :)
Спасибо :)
Не люблю я делфи, вот тебе на С. Сам переделаешь.
#include <stdio.h>
int get_matrix_sum(int* matrix, int width, int height);
int main(int argc, char** argv){
int A[4] = {1,2,3,4};
int B[4] = {5,6,7,8};
int C[4] = {9,10,11,12};
int X[3] = {get_matrix_sum(A,2,2), get_matrix_sum(B,2,2), get_matrix_sum(C,2,2)};
printf("Модуль вектора (длина) равна %d\n", get_matrix_sum(X,3,1));
return 0;
}
int get_matrix_sum(int* matrix, int width, int height){
int sum = 0;
for(int i=0; i < height; i++){
for(int j=0; j<width; j++){
sum+=matrix[i+j];
}
}
return sum;
}
wwalex101
10.12.2009, 15:58
а такой вопрос ... как сделать калькулятор двоичных чисел точнее как именно реальзовать деление ? в долгу не останусь ....
wwalex101
10.12.2009, 17:08
на С++
wwalex101
10.12.2009, 19:37
help
Срочно нужна помощь
На основании исходных данных представленных в таблице 4. Необходимо на языке С или С++ написать программу определения:
- среднемесячной заработной платы одного рабочего на предприятии
http://s39.radikal.ru/i085/0912/0a/46024191fbbf.jpg
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot