Просмотр полной версии : Студентам с лабораторными сюда
Страницы :
1
2
3
4
5
[
6]
7
8
9
10
11
12
cur_lvl, new_lvl: integer;
skills, abilitys: integer;
cur_lvl := StrToInt(Edit1.Text);
new_lvl := StrToInt(Edit2.Text);
abilitys := (cur_lvl - new_lvl) * -1;
skills := abilitys * 8;
Думаю разберешся))
Помогите пожалуйста!
- Дано число К и массив размером N. Найти два различный элемента массива сумма которых наиболее близка к числу К и вывестит эти элементы в порядке возрастания их индексов
- Дан целочисленный массив размером N. Увеличить все четные числа содержащиеся в массиве на исходное значение первого четного числа.
- Дан массив A, размером N и целое число k(1<=k<=4, k<N) осуществить циклический сдвиг элементов массива влево на k позиций при этом An перейдет в An-k; An-1 ->An-k-1; A1->An-k-1
Допускается использовать вспомогательный массив из 4 элементов.
Зарание буду очень благодарен!
2 ne2pi
>>- Дан целочисленный массив размером N. Увеличить все четные числа содержащиеся в массиве на исходное значение первого четного числа
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
clrscr();
randomize();
int arr[100],n,f_ch;
printf("Size of array : ");
scanf("%d",&n);
//заполнение массива случ числами, вывод
printf("UcxogHbli MaccuB: \n");
for(int i=0; i<n; i++){
arr[i]=rand()%10;
printf("%d ",arr[i]);
}
for(i=0; i<n; i++){
if(arr[i]%2==0&&arr[i]!=0){ //поиск 1-ого четного
f_ch=arr[i];
printf("\n1 4eTHbli element - %d\n",f_ch);
for( ; i<n; i++)//увелич всех четных чисел
if(arr[i]%2==0)
arr[i]+=f_ch;
}
}
//вывод результата
for(i=0; i<n; i++)
printf("%d ",arr[i]);
getch();
}
спасибо большое а 2 других можешь сделать?!
Кто может перепишите пожалуйста программу без структур а массивами
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
// объявим структуру "точка"
struct Scoord
{
double x;
double y;
};
//------------------
int main()
{
const int N = 10; // количество точек
const double LMAX=-10, RMAX=10; // левая и правая границы для генерации координат
const double TMAX=-10, BMAX=10; // верхняя и нижняя
Scoord mas[N]; // массив точек
int i,j,K;
double S,Smin;
srand(time(NULL));
for(i=0;i<N;i++)
{
// разбрасываем точки
mas[i].x = rand()*(RMAX-LMAX)/(double)RAND_MAX+LMAX;
mas[i].y = rand()*(BMAX-TMAX)/(double)RAND_MAX+TMAX;
printf("To4ka %d: %5.3lf %5.3lf\n",i,mas[i].x,mas[i].y);
}
printf("\n");
//==================
K = 0; // считаем, что вершина K - то, что нам нужно
Smin = -1;
for(i=0;i<N;i++) // перебираем все возможные "корни куста"
{
S = 0; // изначально сумма равна 0
for(j=0;j<N;j++) // перебираем вершины куста
{
if(j==i) continue; // если текущая вершина - корень, пропускаем
S += pow( pow(mas[j].x-mas[i].x,2) + pow(mas[j].y-mas[i].y,2),0.5);
}
if(Smin==-1) // если мы еще пока ничего не запомнили...
{
Smin = S; // то запоминаем эту сумму
K = i; // и номер вершины-корня
}
else
{
if(S<Smin) // иначе, если текущая сумма меньше
{
Smin = S; // запоминаем ее
K = i;
}
}
}
//=======
printf("Vershina kusta: %5.3lf %5.3lf\n", mas[K].x,mas[K].y);
printf("Summa reber = %5.3lf\n", Smin);
//---------
getch();
return 0;
}
Меняешь структуру на массив, например int coord[2]; // тут лежит х и у
Тогда массив структур будет выглядеть int pixels[10][2];
for(i=0;i<N;i++)
{
// разбрасываем точки
pixels[i][0] = rand()*(RMAX-LMAX)/(double)RAND_MAX+LMAX; // тут x
pixels[i][1] = rand()*(BMAX-TMAX)/(double)RAND_MAX+TMAX; // тут у
printf("To4ka %d: %5.3lf %5.3lf\n",i,pixels[i][0].pixels[i][1]);
}
И так далее.
C#
Отдел кадров в университете
Разработать программу, реализующую справочник сотрудника отдела кадров. Университет состоит из факультетов, факультеты имеют в своем составе кафедры и студенческие группы. На каждой кафедра есть заведующий кафедрой. Некоторые кафедры являются профилирующими. Каждая группа имеет студента - старосту и профилирующую кафедру. Будем полагать, что в университете все люди являются преподавателями и/или студентами. Сведения о каждом человеке должны содержать – фамилия, имя, отчество, пол, паспортные данные, место проживания. Для студентов дополнительно должна быть информация о родителях и группе. Для преподавателей дополнительно должна быть информация о кафедре и должности. Предусмотреть возможную ситуацию, когда один и тот же человек может быть одновременно студентом, родителем и преподавателем. Один родитель может иметь несколько детей-студентов. Программа должна загружать справочник с жесткого диска, править все его данные, сохранять на диск. В процессе работы пользователь программы должен иметь возможность просмотра, как минимум, следующих параметров:
Список всех студентов с возможностью сортировки по ФИО, факультету, группе, профилирующей кафедре.
Список студентов, не имеющих родителей с возможностью сортировки по ФИО, факультету, группе, профилирующей кафедре.
Список преподавателей с возможностью сортировки по ФИО, факультету, кафедре.
Список всех заведующих кафедрами.
Список всех групп без старост и кафедр без заведующих.
Поиск у заданного родителя всех его детей – студентов.
Список всех преподавателей, имеющих детей – студентов.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace new2
{
public partial class Form1 : Form
{
IList<Ludi> list_ludi = new List<Ludi>();
public Form1()
{
InitializeComponent();
}
private void button10_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = null;
}
private void button2_Click(object sender, EventArgs e)
{
Init();
DataTable table1 = new DataTable();
DataColumn column_familia = new DataColumn("Familia", Type.GetType("System.String"));
DataColumn column_imy = new DataColumn("Imy", Type.GetType("System.String"));
DataColumn column_otchestvo = new DataColumn("Otchestvo", Type.GetType("System.String"));
DataColumn column_pol = new DataColumn("Pol", Type.GetType("System.String"));
DataColumn column_pasport = new DataColumn("Pasport", Type.GetType("System.String"));
DataColumn column_prozivanie = new DataColumn("Prozivanie", Type.GetType("System.String"));
table1.Columns.Add(column_familia);
table1.Columns.Add(column_imy);
table1.Columns.Add(column_otchestvo);
table1.Columns.Add(column_pol);
table1.Columns.Add(column_pasport);
table1.Columns.Add(column_prozivanie);
foreach (Ludi ludi in list_ludi)
{
DataRow new_row = table1.NewRow();
new_row["Familia"] = ludi.Familia;
new_row["Imy"] = ludi.Imy;
new_row["Otchestvo"] = ludi.Otchestvo;
new_row["Pol"] = ludi.Pol;
new_row["Pasport"] = ludi.Pasport;
new_row["Prozivanie"] = ludi.Prozivanie;
table1.Rows.Add(new_row);
}
dataGridView1.DataSource = table1;
}
private void Init()
{
// Список фамилий
Random rand = new Random();
for (int i = 0; i < 40; i++)
{
Ludi new_student = new Ludi();
list_ludi.Add(new_student);
}
}
}
}
Как правильно написать чтобы выводились различные букввы. Где список студентов.
- Дан массив A, размером N и целое число k(1<=k<=4, k<N) осуществить циклический сдвиг элементов массива влево на k позиций при этом An перейдет в An-k; An-1 ->An-k-1; A1->An-k-1
Допускается использовать вспомогательный массив из 4 элементов.
#include <iostream>
using namespace std;
int main()
{
int n,temp;
int* a;
cin>>n;
a=new int [n];
for (int i=0;i<n;i++)
cin>>a[i];
cin>>k;
for (int i=0;i<k;i++)
for (int j=0;j<(n-1);j++)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
};
for (int i=0;i<n;i++)
cout<<a[i]<<" ";
return 0;
};
1. (длинная арифметика)
Составить программу вычисления точного значения n^n, где n > 10
Вычисление степени
http://comp-science.narod.ru/DL-AR/stepen.html
http://forum.sources.ru/index.php?showtopic=98939&view=findpost&p=752273
http://forum.developing.ru/showthread.php?t=13396
http://e-maxx.ru/algo/binary_pow
Помогите задачки в паскале.
1) заполнить массив A(n,m) единицами по главной диагонали, остальные элементы-произвольные числа. Заполнить массив по второй диагонали значением суммы элементов по 2 строке массив распечатать.
2) В Массиве X(n,m) определить:
а)количество положительных, отрицательных и нулевых элементов.
б) Номер первого отрицательного элемента.
Помогите задачки в паскале.
2) В Массиве X(n,m) определить:
а)количество положительных, отрицательных и нулевых элементов.
http://www.cyberforum.ru/pascal/thread21377.html
[Soulfly]
06.04.2009, 22:20
Нужна прога на Visual C++ (платно) http://forum.antichat.ru/showthread.php?p=1210850#post1210850
помогите с лабой нужно на Visual C++ реализация автомобиля по приложеной ниже схеме
P.S. с меня репа
http://savepic.ru/562369.jpg
Прошу вас как товарищей! Помогите пожалуйста сделать хоть что-нибудь из этих задач, прям срочно нужно! С меня плюсы!
1. type mes = (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov,
dec);
day = 1..31;
var m1, m2: mes; k:1..maxint; n:1..12;
Присвоить переменной m1 название k-го месяца после месяца m.
2. type stroka = packed array [1..80] of char;
var s:stroka;
Известно, что в начале строки s находится не более 40 латинских букв, за которыми следуют пробелы. Напечатать эту строку, предварительно удалив первое вхождение w, если такое есть (образовавшуюся «дыру» заполнить последующими буквами, а в конец добавить пробел).
3. const n = 100;
vаr х:аrrау [1..n] of rеаl;
Упорядочить массив х по неубыванию, используя следующий алгоритм сортировки: сортировка вставками. Пусть первые и элементов массива уже упорядочены по неубыванию; берется (k+1 )-й элемент и размещается среди первых k элементов так, чтобы упорядоченными оказались уже k+1 первых элементов; этот метод применяется при k от 1 до n-1.
4. Создать массив записей, содержащих сведения о сотрудниках университета. Структура записи:
фамилия и инициалы работающего, год рождения;
название кафедры;
стаж работы, должность, оклад.
Количество записей произвольное.
Вывести на экран следующие данные: средний стаж работающих на кафедре X и список профессоров пенсионного возраста с указанием стажа работы.
5. var A,B: set of char; x:char;
Переменной B присвоить множество, полученное из A добавлением элемента x.
http://s48.radikal.ru/i120/0904/73/4101b8661523.jpg (http://www.radikal.ru)
23 вариант! на С++ помогите плз . с меня репа. задача не трудная. (((
23 вариант! на С++ помогите плз . с меня репа. задача не трудная. (((
держи)
#include <iostream>
#include <cmath>
using namespace std;
int main(int argc, char** argv)
{
double z, x;
cout << "x=";
cin >> x;
if(x >= 1) z = log10(x);
else if(x > -1 && x < 1) z = 1;
else if(x <= -1) z = exp(x);
cout << "z=" << z << endl;
return (0);
}
Помогите с этой задачей на Паскале плиз если не сложно:
Числа Фибоначчи (FП) определяются формулами
fo = f1 = 1; fn = fn-1 + fn-2 при n= 2,3,...
вычислить s - сумму всех чисел Фибоначчи, которые не превосходят 1000.
=)
Погугли!
Ведь очень много материала на данную тему!
:D
Прежде чем писАть - я всегда гуглю если что.
это тебе так, на заметку. ;)
помогите пожалуйста....
требуется 3 программы на паскале:
1)создать массив случайных чисел и вычислить сумму всех его элементов
2)программу, считающую сумму элементов столбцов 2-мерного массива и записывает их в одномерный массив
3)программу, которая в 2*-мерном массиве случайных чисел, елементы всех четных строк делает нулевыми
ПЕРВЫЕ 2 ЕСТЬ! ПОМОГИТЕ С ТРЕТЬЕЙ!!!!!!!!!
s0l_ir0n
08.04.2009, 21:53
1)создать массив случайных чисел и вычислить сумму всех его элементов
//создать массив случайных чисел и вычислить сумму всех его элементов
//
//т.к. размер массива в задании не указан, делаю небольшой
var
mass:array [1..5] of integer; //Объявление переменной массива целых чисел, состоящего из 5 элементов
sum:integer; //Переменная, в которую заносится сумма значений массива
i:integer; //Переменная для цикла
begin
Randomize; //Инициализация ГСЧ
sum:=0; //Обнуление переменной (во избежание глюков)
For i:=1 to 5 do
mass[i]:=Random(999); //Присваивание i-тому элементу массива случйного числа в диапазоне от 0 до 999
For i:=1 to 5 do
sum:=sum+mass[i]; //Прибавление к переменной sum значение i-того элемента массива
Writeln('Сумма случайных значений массива: ',sum); //Вывод сообщения с суммой
Readkey; //Ожидание нажатия любой клавиши
end.
хелпаните товарищи. третий вариант плз! с меня репа.
с++
http://s61.radikal.ru/i173/0904/64/29bf32c9e5d1.jpg (http://www.radikal.ru)
помогите пожалуйста! очень срочно надо!
MRAK9 лови:
program xuinya;
Uses crt;
const n = 6;
m = 6;
var a: array[1..n,1..m] of integer;
i,j:integer;
begin
//заполнение случ числами, вывод
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random(10);
write(a[i,j],' ');
end;
writeln;
end;
writeln;
//поиск четной строки, обнуление всех элементов
for i:=1 to n do begin
if (i mod 2 = 0) then
for j:=1 to m do
a[i,j]:=0;
end;
//вывод результата в crt
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j],' ');
writeln;
end;
end.
Hammer94
10.04.2009, 17:57
Товарищи, помогите срочно нужно сделать игру быки и коровы, игру почти написал, но в коде что-то напутал и никак не разобрать, вот ссылка на архив, игра написана на C# : http://narod.ru/disk/7571056000/BikiiKorovi.rar.html
посмотрите плиз код и скажите что там не так.
В долгу не останусь!
В заданном тексте заменить последовательность символов X(I) на A(I)
В тупую, или как...
http://ru.wikipedia.org/wiki/ -> Поиск подстроки
помогите пожалуйста с заданием на чистом С
2) Грамматики, языки и автоматы.
Задано множество правил подстановки вида v(i)->w(i), где все v(i) и w(i) - слова
одной и той же длины. Определить, можно ли перевести одно заданное слово в
другое последовательным применением заданных правил подстановки. Например, если
имеются правила подстановки ba->ab, cb->bc, ca->ac, то слово cbba переводится в
слово abbc следующим образом: cbba->cbab->cabb->acbb->abcb->abbc.
Помогите пожалуйста!ещё актуально.Заранее спасибо.
2 Mozy
Так какой именно алгоритм надо?
2 sebay
Прокатит любая рекурсия ))
2 Mozy
2 sebay
Прокатит любая рекурсия ))
я правильно понимаю что алгоритм примерно такой?
Пользователь вводит с клавиатуры начальную формулу и конечную,и правила подстановки.Возьмем 3 строки.В одной будет начальная формула.В другой конечная.В третье промежуточные вычисления.Затем мы берем начальное слово и применяем к нему первую подстановку результат записываем в промежуточную строку.Затем к промежуточной формуле применяем ещё подстановки...Вопрос в том нужно ли к ней снова применять ту подстановку которую мы применили или перейти к другой.Это похоже просто перебор....
Вот реализовать его я совсем не могу.
043nKRuT0y
13.04.2009, 10:07
Народ подскажыте :
- как найти длинну сторон Н-угольника , зная только массив координат его вершын(X,Y) ?
- как найти угол при вершыне ?
Если можно формулами ))) Зарание спс !
Нужна помощь по паскалю.!
то сам не догоняю как сделать!
Вообщем есть текст программы но он не работает.!
Программа должна удалять из каждой тройки букв среднюю букву.!тип циклический.
проблема в том что я написал, что бы было чтение данных из файла..!а нужно что бы они вводились с клавиатуры, и конец строчки заканчивалась .(точкой)
т.е вводишь данные.
1 строчка йцукен
конец строчки .
начальное слово йцукен......преобразованное йукн
.
также я хз зачем создал еще Pysk, Pysk1, Ptr1
Uses Crt;
type
pSpisok = Slova;
Slova = Record
slv : string[10];
next : pSpisok
end;
var
Head1, Tail1, Head2, Tail2, Ptr1, Ptr2, Pysk1, Pysk2 : pSpisok;
St, Str : string[10];
F : text;
I, K, N : integer;
Name : string;
begin
ClrScr;
Writeln ('Fail dolgen sodergat slova, raspologennie postrochno');
Writeln ('Vvedite imya faila: ');
Readln (Name);
Assign (F, Name);
Reset (F);
Head1 := Nil;
Tail1 := Nil;
Head2 := Nil;
Tail2 := Nil;
ClrScr;
While not Eof(F) do
begin
Readln (F, St);
New (Ptr1);
Ptr1^.Slv :=St;
Ptr1^.Next := Nil;
If Tail1 <> Nil then
Tail1^.Next := Ptr1;
Tail1 := Ptr1;
If Head1 = Nil then
Head1 := Ptr1;
end;
Tail1^.Next := Head1;
Ptr1 := Head1;
Pysk1 := Head1;
repeat
Str := Ptr1^.Slv;
N := length(str) - 1 div 3;
If Str <> '' then K := 1;
for I := 1 to N do
begin
Delete (Str, K+1, 1);
K := K + 2;
end;
New (Ptr2);
Ptr2^.Slv := Str;
Ptr2^.Next := Nil;
If Tail2 <> Nil then
Tail2^.Next := Ptr2;
Tail2 := Ptr2;
If Head2 = Nil then
Head2 := Ptr2;
Pysk1 := Ptr1^.Next;
Ptr1 := Pysk1;
Until Pysk1 = Head1;
Tail2^.Next := Head2;
Pysk1 := Head1;
Pysk2 := Head2;
Ptr1 := Head1;
ptr2 := Head2;
repeat
Write (Ptr1^.Slv,' ');
Writeln (Ptr2^.Slv);
Pysk1 := Ptr1^.Next;
Pysk2 := Ptr2^.Next;
Ptr1 := Pysk1;
Ptr2 := Pysk2;
until Pysk2 = Head2;
repeat until KeyPressed;
End.
043nKRuT0y
15.04.2009, 15:03
N-угольник не равносторонний !
Помогите пожалуйста, на С++ нужно описать шаблон функции, возвращающей минимальный из трех передаваемых в нее параметров любого (но одинакового) типа
Помогите пожалуйста, на С++ нужно описать шаблон функции, возвращающей минимальный из трех передаваемых в нее параметров любого (но одинакового) типа
тапа этого что-то, если тип будет int то перед тем как его передать в ф-ю надо преобразовать в float.... иль я чего-то недопонял.
float min(float a, float b, float c)
{
float m;
m=a;
if(b<m)
m=b;
if(c<m)
m=c;
return m;
}
тапа этого что-то, если тип будет int то перед тем как его передать в ф-ю надо преобразовать в float.... иль я чего-то недопонял.
Ему надо шаблонную функцию
Вот, держи
template<typename T>
T func(T a, T b, T c)
{
if(a < b && a < c) return a;
else if(b < a && b < c) return b;
else return c;
}
Подскажите еще, как перегрузить операторы ввода/вывода
Есть программа которая разрезает картинку на 9ть частей в произвольном порядке (то есть как несобранный пазл) нужно чтобы при правильном сборе картинки программа выдавала сообщение: "вы выиграли!"
Код разбиения картинки ниже, также еще само собой имеется код который позволяет перетягивать по форме отрезаные части.
void __fastcall TForm1::FormCreate(TObject *Sender) { TImage * Pict = new TImage(Form1);
Pict->AutoSize = true;
/* В следующем операторе указано имя загружаемого файла */
Pict->Picture->LoadFromFile("CUS6.BMP"); Image1->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(0,0,Pict->Width / 3,Pict->Height / 3)); Image3->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(Pict->Width / 3,0,Pict->Width *2/ 3,Pict->Height / 3)); Image2->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(Pict->Width *2/ 3,0,Pict->Width,Pict->Height / 3)); Image5->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(0,Pict->Height / 3,Pict->Width / 3,Pict->Height *2/ 3)); Image4->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(Pict->Width / 3,Pict->Height / 3,Pict->Width *2/ 3,Pict->Height *2/ 3)); Image6->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(Pict->Width *2/ 3,Pict->Height / 3,Pict->Width,Pict->Height *2/ 3)); Image9->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(0,Pict->Height *2/ 3,Pict->Width / 3,Pict->Height)); Image7->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(Pict->Width / 3,Pict->Height *2/ 3,Pict->Width *2/ 3,Pict->Height)); Image8->Canvas->CopyRect(Image1->ClientRect, Pict->Canvas, Rect(Pict->Width *2/ 3,Pict->Height *2/ 3,Pict->Width,Pict->Height));
Как будет выглядеть действие из каждой тройки букв удали среднюю??
Delete (Str, K+1, 1);
K := K + 1;
вот так или нет?
паскаль
Люди help помогите, можете написать пожалуйста любую игру средней сложности на pascalABC (если не сложно с объяснением). Заранее БОЛЬШОЕ спасибо.
хелп.... нужна прога нв паскале:
ввод массива чисел в прямоугольную матрицу MxN(M<N) размер массива по M>7. Умножение элементов матрицы на число
НЕ АКТУАЛЬНО
хелп.... нужна прога нв паскале:
ввод массива чисел в прямоугольную матрицу MxN(M<N) размер массива по M>7. Умножение элементов матрицы на число
Куда мир катится? Даже по таким пустякам просить у кого-то помощи - это уж черезчур...
Куда мир катится? Даже по таким пустякам просить у кого-то помощи - это уж черезчур...
хех-ссори за эт просьбу-я просто не успевал все сделать, вот и попросил на ночь глядя
Как будет выглядеть действие?
из каждой тройки букв удалить среднюю??
Delete (Str, K+1, 1);
K := K + 1;
вот так или нет?
паскаль
HELP!!!!
Ребят в С++ нужно сделать так чтобы при перетягивании из одного имэйджа в другой .когда картинка покрывает большую половину второго имейджа(тот на который перетягую) сама притягивалась("прилипала") к нему... ( чтобы не выставлять по милиметру)
в делфи нужно решить 2 массива:
1) Заполнить масив A(n,m) единицами по главной диагонали остальные элементы произвольные числа. Заполнить массив по второй диагонали значением суммы элементов по 2 стровек массив распечатать.
2) В массиве X(n,m) определить:
а)количество положительных отрицательных и нулевых элементов
б) номер первого отрицательного элемента.
Люди помогите перевести из turbo pascal в pascalABC:
uses crt,graph;
var a,b,bb,x,y,i,jx,jy:integer;
xx,yy:array[1..1000] of integer;
c:char;
n:boolean;
begin
initgraph(a,b,'');
randomize;
a:=1;
i:=1;
n:=false;
x:=100;
y:=240;
rectangle(0,0,639,479);
repeat
jx:=random(640);
jy:=random(480);
if getpixel(jx,jy)=0 then begin
for i:=-3 to 3 do begin
putpixel(jx+i, jy, 14);
putpixel(jx,jy+i,14);
end;
a:=1; end else a:=0;
until a=1;
i:=1;
repeat
a:=a+1;
if a=150*i+1 then a:=1;
if n=false then x:=x+1;
if ord(c)=72 then y:=y-1;
if ord(c)=75 then x:=x-1;
if ord(c)=77 then x:=x+1;
if ord(c)=80 then y:=y+1;
if getpixel(x,y)=15 then c:='x';
if getpixel(x,y)=14 then begin
for b:=y-10 to y+10 do begin
for bb:=x-10 to x+10 do
if getpixel(bb,b)=14 then putpixel(bb,b,0);
end;
repeat
jx:=random(640);
jy:=random(480);
if getpixel(jx,jy)=0 then begin
for b:=-3 to 3 do begin
putpixel(jx+b, jy, 14);
putpixel(jx,jy+b,14);
end;
b:=1; end else b:=0;
until b=1;
i:=i+1;
end;
putpixel(x,y,15);
delay(15);
putpixel(xx[a],yy[a],0);
xx[a]:=x;
yy[a]:=y;
if keypressed then n:=true;
if keypressed then c:=readkey;
until (c='x') or (i=10);
if c='x' then begin
settextstyle(1,0,8);
setcolor(9);
outtextxy(150,200,'THE END...');
end;
if i=10 then begin
setcolor(10);
settextstyle(3,0,8);
outtextxy(150,200,'CONGRATS!');
end;
delay(500);
readkey;
closegraph;
end.
Подскажите пжлст,где можно взять исходник самых примитивных пазлов под C++ builder???
помогите плиз!!! нужна прога на С++ которая складывает, умножает, обращает, транспонирует матрицы
кто-нибудь может переписать задачу под задачу в которой из одной вершины может быть несколько ребер?
Нужно добавить еще один цикл в функцию, в котором будет перебираться количество ветвей из текущей вершины. Идти будет от 1 до некоего T, которое будет изменяться (это количество оставшихся вершин).
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
// структура "точка"
struct Scoord
{
double x;
double y;
};
const int LMAX=0, RMAX=30, TMAX=24, BMAX=0;
int N;
double Smin; // сюда запишем минимальную сумму
int *minPath; // здесь будет минимальный путь
double **matr; // матрица, где будем хранить длины ребер
Scoord *mas; // массив точек
// рекурсивная функция для поиска пути.
// принимает указатель на текущий путь (который формируется с каждым вызовом)
// порядковый номер текущей вершины и текущую сумму ребер
void getMinPath(int *tekPath, int tek, double tekS)
{
if(tek==N) // если перебрали все вершины
{
if(tekS<Smin || Smin==0) // и если текущая сумма меньше той, которую запомнили
{
Smin = tekS; // запоминаем
for(int j=0; j<N; j++)
minPath[j] = tekPath[j]; // и запоминаем путь
}
return;
}
// иначе...
bool b;
for(int i=0; i<N; i++) // перебираем все вершины
{
b = false;
for(int j=0; j<tek; j++) // смотрим, нет ли текущей вершины в уже сформировавшемся пути
if(tekPath[j]==i) b=true; // если есть, ставим флаг
if(b) continue; // если флаг установлен, пропускаем вершину и берем следующую
tekPath[tek] = i; // добавляем вершину к пути
getMinPath(tekPath, tek+1, tekS+matr[tekPath[tek-1]][i]); // и ищем следующую вершину
}
}
//-----------
// функция для заполнения матрицы
// принимает указатель на матрицу
void fillMatr(double **matr)
{
int i,j;
double dlina;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(j==i) continue;
else
{ // для двух разных вершин считаем длину ребра
dlina = sqrt(pow(mas[i].x-mas[j].x,2)+pow(mas[i].y-mas[j].y,2));
if(dlina<matr[i][j] || matr[i][j]==0)
matr[i][j] = dlina;
}
}
//----------------------
int main()
{
int i,j;
int *tekPath;
srand(time(NULL));
printf("Vvedite kolichestvo vershyn: ");
scanf("%d",&N);
// выделяем память под массив вершин
mas = new Scoord[N];
for(i=0;i<N;i++)
{
// разбрасываем точки
mas[i].x = rand()*(RMAX-LMAX)/(double)RAND_MAX+LMAX;
mas[i].y = rand()*(BMAX-TMAX)/(double)RAND_MAX+TMAX;
printf("To4ka %d: %5.3lf %5.3lf\n",i,mas[i].x,mas[i].y);
}
printf("\n");
//==================
// выделяем память под матрицу
matr = new double*[N];
for(i=0;i<N;i++)
matr[i] = new double[N];
// память под минимальный и текущий пути
tekPath = new int[N];
minPath = new int[N];
Smin = 0;
for(i=0; i<N;i++)
for(j=0;j<N;j++)
matr[i][j] = 0;
fillMatr(matr); // заполняем матрицу
// ищем минимальный путь
for(i=0; i<N; i++) // в цикле перебираем стартовые вершины
{
tekPath[0] = i;
getMinPath(tekPath, 1, 0);
}
printf("\n Minimalnaya summa = %5.3lf\n\n",Smin);
printf("derevo:\n");
printf("%d",minPath[0]);
for(i=1;i<N;i++)
printf(" -> %d",minPath[i]);
printf("\n");
for(i=0;i<N;i++)
delete[] matr[i];
delete[] matr;
delete mas;
delete[] minPath;
delete[] tekPath;
getch();
return 0;
}
1) Заполнить масив A(n,m) единицами по главной диагонали остальные элементы произвольные числа. Заполнить массив по второй диагонали значением суммы элементов по 2 стровек массив распечатать.
Edinolichnick
19.04.2009, 22:40
Доброго времени уважаемые! Помогите пожалуйста сделать програмку для курсовика.
1) Выполнить дискретизацию расчетной области в виде четырехугольника заданного координатами вершин:
A(-3;0) B(0;5) C(4;3) D(4;-2).
2) Найти узловые неизвестные T(Xi,Yi) по заданному распределению температуры вдоль границы области T(X,Y)=3x^2+xy+5x+2y-3y^2. Вычислить максимальную относительную погрешность полученных результатов.
3) Построить семейство изотерм.
Очень желательно на C++
Edinolichnick
19.04.2009, 22:41
Второй вота вот курсовик.
Написать программу «Моя записная книжка».
Предусмотреть возможность работы с произвольным числом записей, поиска за¬писи по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям.
Хранение данных организовать с применением контейнерного класса шар или multimap
Edinolichnick
19.04.2009, 22:45
Пара лаб:
ИНТЕРПОЛЯЦИЯ ФУНКЦИЙ МНОГОЧЛЕНАМИ
1)Для заданной функции y(x) вычислить ее значения на отрезке [0,4] при x(икс итое(i)) = i, где i=0,1,2,3,4. Используя кусочно-линейную интерполяцию и интерполяционный многочлен Лагранжа L(x), вычислить значения функции в середине каждого локального интервала интерполяции. Сравнить полученные результаты с точными значениями. Построить в одной системе координат графики функций y=y(x) и y= L(x)
y=1+xsinx
2). АППРОКСИМАЦИЯ ТАБЛИЧНЫХ ЗАВИСИМОСТЕЙ
Аппроксимировать заданную табличную зависимость функцией вида g(x,a,b) и сравнить с аппроксимацией многочленом первой степени. Для всех вариантов заданы значения функции y(игрек житое(j)) при x j= i (i=1,2,...8). Дать графическую иллюстрацию полученных результатов.
g(x)=ax+b/x (4,8; 5,7; 6,8; 8,9; 10,4; 12,7; 14,2; 16,6)
Помогите пожалуйста !!!
допустим, что есть программа ( по решению транспортных задач )
можно ли эту прогу открыть ввиде кода???, и чем, если возможно ?? очень нужно несколько действий выдернуть...
можно ли эту прогу открыть ввиде кода???
не более чем получить дизасемблерный код
Ну если прога написана на Delphi, то можно попробовать DeDe
Как будет выглядеть действие?
из каждой тройки букв удалить среднюю??
Delete (Str, K+1, 1);
K := K + 1;
вот так или нет?
паскаль
HELP!!!!
~NeiTRoN~
22.04.2009, 06:07
Народ помогите плиз.Очень надо.
Условие:
Из входной последовательности чисел составить двоичное дерево, а потом распечатать числа по уровням,начиная с корня.
До этого делал лабы сам, а тут трабла возникла, как это ни стыдно, но не могу понять что надо сделать, прошу помощи:
Даны коэффициенты многочленов P(x) и Q(x) пятого порядка и вещественное число a. Вычислить величину P(a+Q(a)*(a+1)). Написать функцию (единственную), вычисляющую как P(x), так и Q(x).
зы. ЯП Паскаль, но не критично
Как можно в языке C написать программу, которая бы выводила из текстового файла все символы кроме 0-9A-Za-z, т.е. русские символы.
Допустим в текстовом файле написано "reggreg выприук !4t5dfsdf?*mvfgerFECCV".
Знаю что должно как-то через функцию grep [^0-9A-Za-z] file; решаться но не знаю как. :(
Помогите кому не сложно :)
Читаеш файл посимвольно если символ принадлежит диопазону от 0xc0 до 0xFF то выводиш. Так примерно как то:
FILE *f;
char c;
f = fopen("123.txt","r+");
while(!feof(f))
{
c = fgetc(f);
if((c<=0xc0) && (c>=0xff))
printf("%c",c);
}
HELP!!!!
for i:=2 to n do begin
delete(s,i,1);
i:=i+1;
end;
Помогите кто может!!!
№1 Вычислить все значения функции ф=корень из x квадрат + y квадратесли х и у это значения элементов массива х(n) и у(m)
№2 определить количество положительных и отрицательных элементов в массиве х(n)
№3 в массиве A(n,m) определить:
а)максимальный и минимальный элементы
б)номер последнего отрицательного
в)заменить последний отрицательный элемент на минимальный
№4в массиве A(n,m) найти разность между суммой элементов во 2 строке и суммой элементов в 5 столбце.
Пожалуста!!! Просто очень нужно!
№1 Вычислить все значения функции ф=корень из x квадрат + y квадратесли х и у это значения элементов массива х(n) и у(m)
procedure dothis;
var x : array[1..5] of integer = (1,2,3,4,5,6);
y : array[1..3] of integer = (1,2,3);
i,j : integer;
f : real;
begin
for i:=0 to 4 do
for j:=0 to 2 do begin
f := sqrt( x[i]*x[i] + y[j] * y[j] );
writeln(x[i],',',y[j],' = ',f);
end;
end;
№2 определить количество положительных и отрицательных элементов в массиве х(n)
const x = array(1,2,-3,4,-5,6,7);
y = array(1,-2,3);
var
pol, otr : integer;
begin
pol := 0; otr := 0;
for i:=0 to 6 do
if x[i]>=0 then inc(pol) else
dec(pol);
writeln('X: ','noJlo*uteJlbHux=',pol, 'oTPucaTeJlHux=',otr);
pol := 0; otr := 0;
for i:=0 to 2 do
if y[i]>=0 then inc(pol) else
dec(pol);
writeln('Y: ','noJlo*uteJlbHux=',pol, 'oTPucaTeJlHux=',otr);
end.
Всем привет!
Помогите с двумя задачами - нужно написать на турбо паскале сие:
http://upload.akusherstvo.ru/thumbs/176054.jpg (http://upload.akusherstvo.ru/image176054.jpg)
Только первый и второй пример, с меня + и огромное спасибо. Желательно чтоб было написанно без проффисионализма =) Ну чтоб препод не запалил)
1.
y:=sqrt(1-sqr(cos(x)*cos(x)));
2.
Program xya2;
uses crt;
var x,y:real;
begin
writeln('BBeguTe X');
readln(x);
if (x<=0) then
y:=cos(x)*(5-3*x)
else
y:=2*sqrt(x);
writeln('Y = ',y);
readln();
end.
Неужели нет интереса научится хотябы немного программировать?=\
Flame of Soul
23.04.2009, 23:33
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
y,x:real;
begin
write('vvedite znachenie x:'+#10#13);
readln(x);
writeln('x='+floattostr(x));
y:=sqrt(2*(1-cos(x)*cos(x)));
write('y='+floattostr(y));
readln(x);
{ TODO -oUser -cConsole Main : Insert code here }
end.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
y,x:real;
begin
write('vvedite znachenie x:'+#10#13);
readln(x);
writeln('x='+floattostr(x));
if x>0 then
begin
y:=2*sqrt(x);
end
else
begin
y:=cos(x)*(5-3*x);
end;
write('y='+floattostr(y)+#10#13);
readln(x);
{ TODO -oUser -cConsole Main : Insert code here }
end.
1.
y:=sqrt(1-sqr(cos(x))); //точно не помню как вычисл cos^2 x
2.
Program xya2;
uses crt;
var x,y:real;
begin
writeln('BBeguTe X');
readln(x);
if (x<=0) then
y:=cos(x)*(5-3*x)
else
y:=2*sqrt(x);
writeln('Y = ',y);
readln();
end.
Неужели нет интереса научится хотябы немного программировать?=\
Спасибо! Ну, другие интересы)
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
y,x:real;
begin
write('vvedite znachenie x:'+#10#13);
readln(x);
writeln('x='+floattostr(x));
y:=sqrt(2*(1-cos(x)*cos(x)));
write('y='+floattostr(y));
readln(x);
{ TODO -oUser -cConsole Main : Insert code here }
end.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
y,x:real;
begin
write('vvedite znachenie x:'+#10#13);
readln(x);
writeln('x='+floattostr(x));
if x>0 then
begin
y:=2*sqrt(x);
end
else
begin
y:=cos(x)*(5-3*x);
end;
write('y='+floattostr(y)+#10#13);
readln(x);
{ TODO -oUser -cConsole Main : Insert code here }
end.
Тоже спасибо!! Только странный какой то код...
Мне не понятно вот это - {$APPTYPE CONSOLE} и floattostr это что такое, не видел ещё в паскале такого
Flame of Soul
23.04.2009, 23:40
Мне не понятно вот это - {$APPTYPE CONSOLE} и floattostr это что такое, не видел ещё в паскале такого
просто написано в дельфи для консоль аппликейшен.
floattostr - позволяет выводить на экран числовые значения в виде текста, можешь эти строки убрать, они для наглядности... не парься в общем, а просто живи как нравиться)))
просто написано в дельфи для консоль аппликейшен.
floattostr - позволяет выводить на экран числовые значения в виде текста, можешь эти строки убрать, они для наглядности... не парься в общем, а просто живи как нравиться)))
Мнеб 1 прогу на чистом паскале...
До этого делал лабы сам, а тут трабла возникла, как это ни стыдно, но не могу понять что надо сделать, прошу помощи:
Даны коэффициенты многочленов P(x) и Q(x) пятого порядка и вещественное число a. Вычислить величину P(a+Q(a)*(a+1)). Написать функцию (единственную), вычисляющую как P(x), так и Q(x).
зы. ЯП Паскаль, но не критично
попытка номер 2, мне даже не нужен алгоритм, я именно задание не могу понять
Помогите пожалуйста в Delphi : Дан фрагмент текста. Если пользователь при введении текста ошибся и текст содержит предложения, которые начинаются с маленькой буквы, сформировать и вывести в другой текстовый редактор исправленный текст. Не знаю как отличить большую букву от маленькой да еще и в начале предложения... Надо сделать с помошью TMemo
Flame of Soul
24.04.2009, 00:58
попытка номер 2, мне даже не нужен алгоритм, я именно задание не могу понять
Коэффицие́нт (от лат. co(cum) — «совместно» и лат. efficients) — «производящий») — числовой множитель при буквенном выражении, известный множитель при той или иной степени неизвестного, или постоянный множитель при переменной величине. Например в выражении:
a1x1 + a2x2 + a3x3 + ...
a1 — коэффициент при переменной x1 и т.д.
В многочлене: http://i.piccy.info/i3/8d/dd/ad429e9d5030c5aa421b00cd7936.gif
ai — коэффициент при i-й степени переменной x.
вещественное число - любое положительное, отрицательное число или нуль. Посредством действительных чисел выражаются результаты измерения всех физических величин.
Думаю при прочтении определения многочлена все становится понятным.
Flame of Soul
24.04.2009, 02:47
Помогите пожалуйста в Delphi : Дан фрагмент текста. Если пользователь при введении текста ошибся и текст содержит предложения, которые начинаются с маленькой буквы, сформировать и вывести в другой текстовый редактор исправленный текст. Не знаю как отличить большую букву от маленькой да еще и в начале предложения... Надо сделать с помошью TMemo
Без обид)) но исходник специально не стала выкладывать, чтобы Вы сами хоть немного потрудились, а не я все за Вас сделала в 5 утра))), удачного оформления кода!!!
//ваша программа
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses StrUtils;
{$R *.dfm}
function Sha_SpaceCompress(const s: string): string;
var p, q, t: pchar; ch: char;
label rt;
begin; p := pointer(s); q := nil;
if p <> nil then begin; t := p + (pinteger(p - 4))^;
if p < t then begin; repeat; dec(t);
if p > t then goto rt; until (t^ > ' ');
SetString(Result, nil, (t - p) + 1);
q := pchar(pointer(Result)); repeat;
repeat; ch := p^; inc(p); until ch > ' ';
repeat; q^ := ch; ch := p^; inc(q); inc(p);
until ch <= ' '; q^ := ' '; inc(q); until p > t;
end; end; rt: if q <> nil then begin; dec(q); q^ := #0;
(pinteger(pchar(pointer(Result)) - 4))^ := q - pointer(Result);
end else Result := '';
end;
function CntRecurrences(substr, str: string): integer;
var cnt, p: integer;
begin cnt := 0; while str <> '' do begin
p := Pos(substr, str); if p > 0 then inc(cnt)
else p := 1; Delete(str, 1, (p + Length(substr) - 1));
end; Result := cnt;
end;
function SearchString(const FindStr, SourceString: string; Num: Integer):
Integer;
var FirstSym: PChar;
function MyPos(const FindStr, SourceString: PChar; Num: Integer): PChar;
begin Result := AnsiStrPos(SourceString, FindStr);
if (Result = nil) then Exit; Inc(Result); if Num = 1 then Exit;
if num > 1 then Result := MyPos(FindStr, Result, num - 1);
end; begin FirstSym := PChar(SourceString);
Result := MyPos(PChar(FindStr), PChar(SourceString), Num) - FirstSym;
if Result < 0 then Result := 0;
end;
function UpCase(ch: char): char; begin if (ch in ['a'..'z', 'а'..'я'])
then result := chr(ord(ch) - 32) else result := ch; end;
//аналогична той что выше но только для English символов.
//function UpCaseRus(ch: Char): Char;
//asm
// CMP AL,'a'
// JB @@exit
// CMP AL,'z'
// JA @@yo
// SUB AL,'a' - 'A'
// RET
//@@yo:
// CMP AL,'?'
// JNE @@exit
// MOV AL,'?'
//@@exit:
//end;
procedure TForm1.Button1Click(Sender: TObject);
var i,j,z,c:integer; s,t:string;
begin Memo2.Lines.Clear; for i:=0 to Memo1.Lines.Count-1 do
begin s:=Memo1.Lines[i]; s:=Sha_SpaceCompress(s);
s:=UpCase(s[1])+RightStr(s,Length(s)-1); j:=CntRecurrences('. ', s);
for z:=1 to j do begin c:=SearchString('. ', s, z);
t:=LeftStr(s,c+1)+UpCase(s[c+2])+RightStr(s,Length(s)-c-2);
s:=t; end; Memo2.Lines.Add(s); end;
end;
end.
Думаю при прочтении определения многочлена все становится понятным.
что такое многочлен пятого порядка?
Нужно ещё решить 3 примерчика, кому не трудно помогите пожалуйста:
http://upload.akusherstvo.ru/thumbs/176258.jpg (http://upload.akusherstvo.ru/image176258.jpg)
С меня плюсики
Нужно на паскале
Flame of Soul
25.04.2009, 01:05
что такое многочлен пятого порядка?
Даны коэффициенты многочленов P(x) и Q(x) пятого порядка, если структура предложения именно такая то речь буквально идет о коффициентах
Нужно ещё решить 3 примерчика, кому не трудно помогите пожалуйста:
х=2(1)8 - это значения которые может принимать х? или к чему это?
Flame of Soul - спасибо огромадное!!!
[U][B]х=2(1)8 - это значения которые может принимать х? или к чему это?
Судя по всему да...другого смысла в этой записи нету
Flame of Soul
25.04.2009, 01:49
1 Задача
program Project1;
uses
SysUtils;
const
e=2.71182818284;
var
x:integer;
y:real;
begin
writeln('vvedite X:');
readln(x);
y:=(4.2*ln(x*x+x+7.5))/(x*(exp(ln(e)*x))+2)+sqrt(x);
writeln('Otvet: '+floattostr(y)+#10#13);
readln(x);
end.
3 Задача
program Project1;
uses
SysUtils;
var
i,k: integer;
x,y: real;
begin
writeln('vvedite X:');
read(x);
k:=0;
y:=0;
for i:=1 to 3 do
begin
k:=k+i;
y:=y+(x/k);
end;
writeln('Otvet: '+floattostr(y)+#10#13);
readln(x);
end.
относительно второй задачи, там sin ??? и он берется по модулю??? просто плохо видно.
ПОмогите)
Надо на паскале своять прогу по графике чтоб на экране отобразился следующий "бред" )
Какой режим: CGA,VGA,VGA2(13h),VESA,SVGA???
Можно ли использовать ресурсы? ведь можно просто вывести картинку... Распишите пожалуйста точнее, желательно в ближайщие часы так как в 7 я уезжаю к бабущке.
program Project1;
uses
SysUtils;
const
e=2.71182818284;
var
x:integer;
y:real;
begin
writeln('vvedite X:');
readln(x);
y:=(4.2*ln(x*x+x+7.5))/(x*(exp(ln(e)*x))+2)+sqrt(x);
writeln('Otvet: '+floattostr(y)+#10#13);
readln(x);
end.
program Project1;
uses
SysUtils;
var
i,k: integer;
x,y: real;
begin
writeln('vvedite X:');
read(x);
k:=0;
y:=0;
for i:=1 to 3 do
begin
k:=k+i;
y:=y+(x/k);
end;
writeln('Otvet: '+floattostr(y)+#10#13);
readln(x);
end.
относительно второй задачи, там sin ??? и он берется по модулю??? просто плохо видно.
Это 1 и 3 ?
Да во второй sin и по модулю!
Flame of Soul
25.04.2009, 02:19
Задача 2
program Project1;
uses
SysUtils;
var
i,k: integer;
x,y: real;
begin
writeln('vvedite X:');
read(x);
k:=0;
y:=0;
if x<0.3 then
y:=ln(ABS(sin(sqrt(x))))
else if x>0.6 then y:=exp(ln(x)*3)
else y:=exp(ln(3)*x);
writeln('Otvet: '+floattostr(y)+#10#13);
readln(x);
end.
Flame of Soul - спасибо огромадное!!!
незачто, мне просто спать незя ложиться, утром ехать рано)))
Задача 2
program Project1;
uses
SysUtils;
var
i,k: integer;
x,y: real;
begin
writeln('vvedite X:');
read(x);
k:=0;
y:=0;
if x<0.3 then
y:=ln(ABS(sin(sqrt(x))))
else if x>0.6 then y:=exp(ln(x)*3)
else y:=exp(ln(3)*x);
writeln('Otvet: '+floattostr(y)+#10#13);
readln(x);
end.
Спасибки тебе!!)
Помогите пожалуйста написать программу на C.
Написать функцию, которая подсчитывает количество слов начинающихся с буквы "к". Текст произвольной длины оканчивающийся ";". Текст состоит из слов разделенных пробелами.
Желательно чтобы программа нормально работала через Turbo C (http://up-do.ru/?f=6f666ad50531ff8b96747087bb3d7e69) (залил на всякий случай)
для pixelm (не очень красиво но не суть важно главное в лабораторных чтоб работало)
#include < stdio.h >
int count_sim(char * str, unsigned char sim) {
int i = 0,
c = 0;
while (str[i] != ';') {
if (str[i] == sim) {
if ((str[i - 1] == 0x20) || (!str[i - 1])) {
c++;
}
}
i++;
}
return c;
}
int main(int argc, char * argv[]) {
char string[] = "kakashko lol kaka pipec;";
printf("slov s k = %d\n", count_sim( & string, 'k'));
getchar();
return 0;
}
ПОмогите) TurboPascalНадо на паскале своять прогу по графике чтоб на экране отобразился следующий "бред" )
http://i031.radikal.ru/0904/86/66e26d5189ac.jpg
*Поправка в каком конкретно режиме невтыкаю) НО просто подключается модуль graph а режим вроде автоматом определяется ну 16 цветов, а насчёт исользования ресов НЕТ просто отрисовать ЭТО с помощью окружностей и палочек... ну операторами!
Вот такая "лёгкая" лаба! Помогите пожалуйста кто знает решение, если возможно с комментариями:
Написать игру, "Звездные войны".
1. Движение:
В игре учавствуют две команды. У каждой команды, два истребителя и один флагман. Победа считается уничтожение флагмана соперника. Игра трехмерная. Каждая команда имеет право сделать два действия; перемещение производится не более чем на одну клеточку, по направлению основных плоскостей. в случае если координаты конечного движение указаны не верно, ход повторяется. В случае если два корабля сталкиваются - оба уничтожаются.
2. Стрельба:
Выстрел производится только в одной из плоскостей.
1)
1-ая команда
1,2,3
2-ая команда
4,5,6
1 и 4 - флагманы
2)
При движении указывается направление движения.
По уничтожению корабля сообщить/сообщение игроку.
и всё это без графического отображения. надо писать под линуксом, в Kate, но нам сказали что можно и на СИшке..
>> Вот такая лёгкая лаба!
>> Игра трехмерная.
Delphi \ C++ ?
delphi:
http://www.sulaco.co.za/opengl.htm
http://gamedev.csportal.ru/3d-programming/OpenGL-vs-Delphi/
http://www.render.ru/books/show_book.php?book_id=242
гугли на тему "технологии OpenGL и DirectX в Delphi и C++"
Спасибо за сслыки, но это слегка не то. Я наверно не правильно объяснил...
Но все равно спасибо!
Трехмерная это наверно бред, но нам так препод сказал. А выглядеть всё должно в текстовом режиме, допустим выводит:
какая команда атакует?
1
кто стреляет?
4
координаты?
2,5,6
тип такого... и еще писать надо на С++, либо на Kate(ну это если под Линукс)... =(
для pixelm (не очень красиво но не суть важно главное в лабораторных чтоб работало)
Ошибки при компиляции.
http://s55.radikal.ru/i147/0904/dc/a97da9e563b0.jpg
зайди в Options->Directories и пропиши правильные пути к нужным папкам(INCLUDE и LIB)
Желательно перенести папку с TC из Program Files на диск C, по моему у компилятора были траблы с именами, содержащими пробел.
frostJKE
27.04.2009, 18:24
Помогите пожалуйста с 2-мя лабораторными...
вот само задание:1. Ввести строку с клавиатуры, заменить все большие латинские символы на малые.
2. Русское слово разбить по слогам.
Нужно написать на С++. Заранее благодарен
1. Ввести строку с клавиатуры, заменить все большие латинские символы на малые.
#include<stdio.h>
#include<conio.h>
#include<string.h>/*библиотека, содержащяя прототип ф-и strlwr(которая преобраз. все буквы верхн. регистра, содержащиеся в строке в нижний*/
void main()
{
char str[100];
gets(str);
printf("%s", strlwr(str));
getch();
}
в с++ сам переделаешь, если конешно знаешь чем отличатся С от С++ =\
зайди в Options->Directories и пропиши правильные пути к нужным папкам(INCLUDE и LIB)
Желательно перенести папку с TC из Program Files на диск C, по моему у компилятора были траблы с именами, содержащими пробел.
Помогло. Ошибки ушли :)
Но слова на "к" мы должный вводить с клавиатуры.
может эту строку изменить на scanf с парметрами?
как лучше сделать?
char string[] = "kakashko lol kaka pipec;";
2pixelm scanf не подойдет, т.к. она чувствтельна к пробелам.
char string[100];
gets(string);//ввод строки
ViP-K1LLeR
28.04.2009, 01:07
Сегодня дали такую задачу(pascal):
http://img220.imageshack.us/img220/9167/12111.jpg
P.S: Требования выносят мозг. Помогите пожалуйста
подскажите пожалуйста как расположить эти вершины(точки) в окружнсть
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
// структура "точка"
struct Scoord
{
double x;
double y;
};
const int LMAX=0, RMAX=30, TMAX=24, BMAX=0;
int N;
double Smin; // сюда запишем минимальную сумму
int *minPath; // здесь будет минимальный путь
double **matr; // матрица, где будем хранить длины ребер
Scoord *mas; // массив точек
// рекурсивная функция для поиска пути.
// принимает указатель на текущий путь (который формируется с каждым вызовом)
// порядковый номер текущей вершины и текущую сумму ребер
void getMinPath(int *tekPath, int tek, double tekS)
{
if(tek==N) // если перебрали все вершины
{
if(tekS<Smin || Smin==0) // и если текущая сумма меньше той, которую запомнили
{
Smin = tekS; // запоминаем
for(int j=0; j<N; j++)
minPath[j] = tekPath[j]; // и запоминаем путь
}
return;
}
// иначе...
bool b;
for(int i=0; i<N; i++) // перебираем все вершины
{
b = false;
for(int j=0; j<tek; j++) // смотрим, нет ли текущей вершины в уже сформировавшемся пути
if(tekPath[j]==i) b=true; // если есть, ставим флаг
if(b) continue; // если флаг установлен, пропускаем вершину и берем следующую
tekPath[tek] = i; // добавляем вершину к пути
getMinPath(tekPath, tek+1, tekS+matr[tekPath[tek-1]][i]); // и ищем следующую вершину
}
}
//-----------
// функция для заполнения матрицы
// принимает указатель на матрицу
void fillMatr(double **matr)
{
int i,j;
double dlina;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(j==i) continue;
else
{ // для двух разных вершин считаем длину ребра
dlina = sqrt(pow(mas[i].x-mas[j].x,2)+pow(mas[i].y-mas[j].y,2));
if(dlina<matr[i][j] || matr[i][j]==0)
matr[i][j] = dlina;
}
}
//----------------------
int main()
{
int i,j;
int *tekPath;
srand(time(NULL));
printf("Vvedite kolichestvo vershyn: ");
scanf("%d",&N);
// выделяем память под массив вершин
mas = new Scoord[N];
for(i=0;i<N;i++)
{
// разбрасываем точки
mas[i].x = x*sin(pi*i/n);
mas[i].y = y*cos(pi*i/n);
printf("To4ka %d: %5.3lf %5.3lf\n",i,mas[i].x,mas[i].y);
}
printf("\n");
//==================
// выделяем память под матрицу
matr = new double*[N];
for(i=0;i<N;i++)
matr[i] = new double[N];
// память под минимальный и текущий пути
tekPath = new int[N];
minPath = new int[N];
Smin = 0;
for(i=0; i<N;i++)
for(j=0;j<N;j++)
matr[i][j] = 0;
fillMatr(matr); // заполняем матрицу
// ищем минимальный путь
for(i=0; i<N; i++) // в цикле перебираем стартовые вершины
{
tekPath[0] = i;
getMinPath(tekPath, 1, 0);
}
printf("\n Minimalnaya summa = %5.3lf\n\n",Smin);
printf("derevo:\n");
printf("%d",minPath[0]);
for(i=1;i<N;i++)
printf(" -> %d",minPath[i]);
printf("\n");
for(i=0;i<N;i++)
delete[] matr[i];
delete[] matr;
delete mas;
delete[] minPath;
delete[] tekPath;
getch();
return 0;
}
Помогите, пожалуйста, разработать программу нахождения значения определенного интеграла методом Симпсона (на паскале).
Вот, собственно, функция для интегрирования:
y=log3(внизу)х (х+х^2)^-1 .
Исходные данные: интервал интегрирования, количество разбиений отрезка.
Результат нужно получить такой: значение интеграла, график заданной функции.
Решение интерпретировать графически (автоматическое масштабирование, название графика, метки на осях и обозначение осей).
Также нужно предусмотреть переключение между графическим и текстовым окнами для ввода исходной информации и вывода результатов интегрирования и графической интерпретации. И предусмотреть проверку корректности данных.
Flame of Soul
28.04.2009, 13:31
Взятие интеграла методом Симпсона
A, B - интервал интегрирования
N - число точек на интервале
Func - функция, от которой берется интеграл.
Возвращаемое значение - значение интеграла
PS: сделано на Delphi (указывайте среду программирования)
type
TFunction = function(X: Extended; Arg: Pointer): Extended;
function Simpson(A, B: Extended; N: Cardinal; Func: TFunction; Arg: Pointer):
Extended;
var
h: Extended;
X: Extended;
K: Extended;
I: Integer;
begin
Assert(N > 0);
h := 0.5 * (B - A) / N;
Result := Func(A, Arg);
X := A + h;
for I := 1 to 2 * N - 1 do
begin
if I mod 2 = 0 then
K := 2
else
K := 4;
Result := Result + K * Func(X, Arg);
X := X + h;
end;
Result := Result + Func(B, Arg);
Result := h * Result / 3;
end;
На уроке с системного програмирования мне задали зделать лабу. Задание Розроботать програму для передачи сообщения через локальную сеть с интерфейсом. Лаба должна усуществляца на
Borland C++.
Могу сказать что нужно только строка для ввода айпи строка для сообщения и кнопка отправки.
Буду очень рад.
На уроке с системного програмирования мне задали зделать лабу. Задание Розроботать програму для передачи сообщения через локальную сеть с интерфейсом. Лаба должна усуществляца на
Borland C++.
Могу сказать что нужно только строка для ввода айпи строка для сообщения и кнопка отправки.
Буду очень рад.
когда уже научитесь гуглом пользоватся?
копай в сторону winsock api
KaZ@NoVa
28.04.2009, 20:52
Сегодня дали такую задачу(pascal):
http://img220.imageshack.us/img220/9167/12111.jpg
P.S: Требования выносят мозг. Помогите пожалуйста
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
vector_type = record
x,y,scal:extended;
end;
vector_array=array[1..100] of vector_type;
var
a,b:extended;
vectors:vector_array;
function Scalar(x1,y1,x2,y2: extended):extended;
begin
Scalar:=x1*x2+y1*y2;
end;
procedure ReadFromFile(var res:vector_array);
var
i:byte;
begin
i:=1;
reset(input,'points.dat');
while (i<=100) and (not Eof(input)) do begin
read(res[i].x);
readln(res[i].y);
inc(i);
end;
close(input);
end;
procedure FindScalar(a,b:extended; var res:vector_array);
var
i:byte;
begin
for i:=1 to 100 do begin
res[i].scal:=Scalar(a,b,res[i].x,res[i].y);
end;
end;
procedure Sort(var res:vector_array);
var
i,l:byte;
tmp:extended;
begin
for i := 99 downto 1 do begin
for l := 1 to i do
if res[l].scal>res[l+1].scal then begin
tmp:= res[l].scal;
res[l].scal:= res[l+1].scal;
res[l+1].scal:= tmp;
tmp:= res[l].x;
res[l].x:= res[l+1].x;
res[l+1].x:= tmp;
tmp:= res[l].y;
res[l].y:= res[l+1].y;
res[l+1].y:= tmp;
end;
end;
end;
procedure WriteToFile(res:vector_array);
var
i:byte;
begin
rewrite(output,'points1.dat');
for i := 1 to 100 do begin
writeln(res[i].x,' ',res[i].y);
end;
close(output);
end;
begin
writeln('Enter A component value...');
readln(a);
writeln('Enter B component value...');
readln(b);
ReadFromFile(vectors);
FindScalar(a,b,vectors);
Sort(vectors);
WriteToFile(vectors);
{ TODO -oUser -cConsole Main : Insert code here }
end.
Это на дельфи,
тебе придётся слегка подправить запись и чтение из файла, просто вроде в паскале нельзя так обращаться легко как в дельфи, но это буквально вроде минут на 5 должно быть
KaZ@NoVa
29.04.2009, 09:51
На уроке с системного програмирования мне задали зделать лабу. Задание Розроботать програму для передачи сообщения через локальную сеть с интерфейсом. Лаба должна усуществляца на
Borland C++.
Могу сказать что нужно только строка для ввода айпи строка для сообщения и кнопка отправки.
Буду очень рад.
На Borland C++ её делать это несколько неправильно на Buildere еще можно договориться. на делфе есть такая же готовая!!!!!
Взятие интеграла методом Симпсона
A, B - интервал интегрирования
N - число точек на интервале
Func - функция, от которой берется интеграл.
Возвращаемое значение - значение интеграла
PS: сделано на Delphi (указывайте среду программирования)
оу, ссори, на паскале нужн :(
Добрый день, вот задали 2 задачки
Условие
Найти значение переменной у после выполнения программы на языке Pascal.
http://static.lokomotiv.info/files/u3360/byajhv.jpg
и еще вот эту:
Найти значение выражение Fun(6), вычисленное при обращении к функциям в программе,написанной на языке Pascal
function fun(n: integer): integer;
begin
if n=0 then fun:=1
else fun:=n*fun(n-1)-2
end;
Пожалуста объясните как решать,очень нужно :)
Самое простое это скомпилировать код и посмотреть на результат.
В первом примере смысл такой:
в цикле проверяем строку х(БАРАН), если встречаем символ 'A' то заносим в строку у 0А, иначе в у заносим символ содерж в х на i-ом месте.
В результате выполнения у='БОАРОАН'
s0l_ir0n
29.04.2009, 14:37
Добрый день, вот задали 2 задачки
Условие
Найти значение переменной у после выполнения программы на языке Pascal.
http://static.lokomotiv.info/files/u3360/byajhv.jpg
Ответ: B0AR0AN
и еще вот эту:
Найти значение выражение Fun(6), вычисленное при обращении к функциям в программе,написанной на языке Pascal
function fun(n: integer): integer;
begin
if n=0 then fun:=1
else fun:=n*fun(n-1)-2
end;
Ответ: -1754
Пожалуста объясните как решать,очень нужно :)
Просто загнать в паскаль/делфи и скомпилировать
Ответ: B0AR0AN
Ответ: -1754
Просто загнать в паскаль/делфи и скомпилировать
спасибо, но просто мне надо ее решать письменно-это задание одного из вариантов моего теста, который мы решаем не на компьютерах,а просто в аудиториях...
если не сложно объясни как у тебя получилось -1754
Кому не трудно и кто умеет писать на паскале , нужно сделать вот такую задачку:
Создать файл F из целых чисел.Переписать в файл G те элементы файла F,которые при деление на 5 дают в остатке 1 или 4.
Исходные данные: F={16;19;21;20;12;31;29;}
спасибо, но просто мне надо ее решать письменно-это задание одного из вариантов моего теста, который мы решаем не на компьютерах,а просто в аудиториях...
если не сложно объясни как у тебя получилось -1754
итак.. fun(n) - какая-то штука, которая использует fun(n-1).
посмотрим:
fun(0)=1;
fun(1)=1*1-2=-1
fun(2)=2*(-1)-2=-4
fun(3)=3*(-4)-2=-14
и т.д.
вот и посчитали)
а вообще-то, конкретно тут, нам задана рекуррента
http://tinyurl.ru/11e
которую можно и так решить
//не знаю, сколько проживёт ссылка на картинку - прямая такая: http://www.d120.de/cgi-bin/mathtex.cgi?%5Cleft%5C{%5Cbegin{array}{l}x_0%20=%2 01%5C%5C%20%20x_n%20=n%5Ccdot%20x_{n-1}-2%5Cend{array}%5Cright.
АП! Срочно просто надо! Моя задачка на пост выше
итак.. fun(n) - какая-то штука, которая использует fun(n-1).
посмотрим:
fun(0)=1;
fun(1)=1*1-2=-1
fun(2)=2*(-1)-2=-4
fun(3)=3*(-4)-2=-14
и т.д.
вот и посчитали)
а вообще-то, конкретно тут, нам задана рекуррента
http://tinyurl.ru/11e
которую можно и так решить
//не знаю, сколько проживёт ссылка на картинку - прямая такая: http://www.d120.de/cgi-bin/mathtex.cgi?%5Cleft%5C{%5Cbegin{array}{l}x_0%20=%2 01%5C%5C%20%20x_n%20=n%5Ccdot%20x_{n-1}-2%5Cend{array}%5Cright.
спасибо огромное :)
s0l_ir0n
30.04.2009, 07:52
Кому не трудно и кто умеет писать на паскале , нужно сделать вот такую задачку:
program Project1;
const
_F:array[1..7] of integer=(16,19,21,20,12,31,29); //Исходные данные
var
f,g:textfile; //файлы в которые будем писать
i:integer; // счетчик
begin
Assign(f,'f.dat'); //Открыть файл f
Rewrite(f); //на запись
for i:=1 to 7 do // 7 раз повторить
Writeln(f,_F[i]); //записать в файл f, значение массива _F с индексом i
CloseFile(f); //Закрыть файл
Assign(g,'g.dat'); //Открыть файл g
Rewrite(g); //на запись
for i:=1 to 7 do begin // 7 раз повторить-----------------------------------------------|
if _F[i] mod 5 = 1 //если при делении значения массива _F с индеком i на 5, остаток = 1 |
Then Writeln(g,_F[i]); //тогда записать это значение в файл g |
if _F[i] mod 5 = 4 //если при делении значения массива _F с индеком i на 5, остаток = 1 |
Then Writeln(g,_F[i]); //тогда записать это значение в файл g |
end; // вот тут повтор заканчивается-----------------------------------------------------|
CloseFile(g); //Закрыть файл g
end.
В общем в инсте проблема у меня, надо сдать лабу и она на делфи, и его мы должны сами изучить
Вот хочу попросить что бы кто-нибудь смог написать программку по нему..
Она должна быть простенькой т.к нам дали делфи на самообучение.
*******************
Вычислить площадь плоской фигуры, заключенной между дугами кривых: y(x) = -Ln(x) и y(x) = R-x
При каком значении R площадь этой фигуры не превышает единицы
frostJKE
03.05.2009, 11:46
Подскажите пожалуйста что здесть не так?
#include <graphics.h> //Подключение библиотек
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <dos.h>
#define mash 40 //Масштаб - количество пикселей равное числу 0.2
#define PI 3.141592653 //Первая математическая константа(Число Пи(^_^))
#define angle5 0.0872665 //Пять градусов в радианах
#define step 0.0001 //Шаг перебора значений переменной t, при маленьких значениях увеличивается время работы, при больших целостность графика теряется
double A,B,C,D,x1,y1,x2,y2,t,anglex=0.0;
int x,y,maxx,maxy,pmsh=0,sdx=0,sdy=0,g=0;
void drawgraph();
void drawset(){ //Начало функции построения системы координат
int i;
clrscr(); //очистка текстового экрана (Возвращение каретки в начало)
setfillstyle(SOLID_FILL, 0);
bar(0,0,maxx,maxy); //Очистка графического экрана
printf("\n\n\n y=%.2lf*(exp(x/2)+exp(-x/2))/2",A); //Zamenit' na viravnivanie po pravoi stenke!!!
if(A>0.0)
printf("\n max - none\n min = %.2lf",A);
if(A<0.0)
printf("\n max = 0.0\n min = 0.0");
if(A==0.0)
printf("\n max = %.2lf\n min - none",A);
//printf("\n\t\t\t\t\t y=sin(%.2lf+%.2lf*t)*cos(%.2lf+t)",A,B,D);
settextstyle(SMALL_FONT, HORIZ_DIR, 4); //Выбор шрифта
setlinestyle(SOLID_LINE, 1, 1); //Выбор пунктирной линии
if(g%2==0){
line(0,maxy/2,maxx,maxy/2); //Построение линий координатной сетки
line(maxx/2,0,maxx/2,maxy);
moveto(maxx/2+5,maxy/2+5);
outtext("0");
outtextxy(maxx/2-10,5,"Y");
outtextxy(maxx-14,maxy/2-14,"X");
for(i=1;(i*mash<maxx/2)||(i*(mash+pmsh)<maxy/2);i++){ //Цикл построение шкалы
line(maxx/2+i*(mash+pmsh),maxy/2+5,maxx/2+i*(mash+pmsh),maxy/2-5); //Деления на положительной части шкалы абсцисс
line(maxx/2-i*(mash+pmsh),maxy/2+5,maxx/2-i*(mash+pmsh),maxy/2-5); //Деления на отрицательной части шкалы абсцисс
line(maxx/2-5,maxy/2-i*(mash+pmsh),maxx/2+5,maxy/2-i*(mash+pmsh)); //Деления на положительной части шкалы ординат
line(maxx/2-5,maxy/2+i*(mash+pmsh),maxx/2+5,maxy/2+i*(mash+pmsh)); //Деления на отрицательной части шкалы ординат
moveto(maxx/2+i*(mash+pmsh)+5,maxy/2+5); //Нанесение значений шкалы х
switch(i){
case 1: outtext("1");break;
case 2: outtext("2");break;
case 3: outtext("3");break;
case 4: outtext("4");break;
case 5: outtext("5");break;
case 6: outtext("6");break;
case 7: outtext("7");break;
case 8: outtext("8");break;
}
moveto(maxx/2-i*(mash+pmsh)+5,maxy/2+5); //Нанесение значений шкалы х
switch(i){
case 1: outtext("-1");break;
case 2: outtext("-2");break;
case 3: outtext("-3");break;
case 4: outtext("-4");break;
case 5: outtext("-5");break;
case 6: outtext("-6");break;
case 7: outtext("-7");break;
case 8: outtext("-8");break;
}
moveto(maxx/2+5,maxy/2-1+i*(mash+pmsh)); //Нанесение значений шкалы у
switch (i){
case 1: outtext("-1");break;
case 2: outtext("-2");break;
case 3: outtext("-3");break;
case 4: outtext("-4");break;
case 5: outtext("-5");break;
case 6: outtext("-6");break;
case 7: outtext("-7");break;
case 8: outtext("-8");break;
case 9: outtext("-9");break;
case 10: outtext("-10");break;
case 11: outtext("-11");break;
}
moveto(maxx/2+6,maxy/2+1-i*(mash+pmsh)); //Нанесение значений шкалы у
switch (i){
case 1: outtext("1");break;
case 2: outtext("2");break;
case 3: outtext("3");break;
case 4: outtext("4");break;
case 5: outtext("5");break;
case 6: outtext("6");break;
case 7: outtext("7");break;
case 8: outtext("8");break;
case 9: outtext("9");break;
case 10: outtext("10");break;
case 11: outtext("11");break;
}
} //Конец цикла
}
drawgraph();
} //Конец функции
void drawgraph(){ //Функция построения графика
t=maxx/(2*(mash+pmsh));
for(x1=-t;x1<=t;x1+=step){ //Перебор ОДЗ t
y1=A*(exp(-x1/2)+exp(x1/2))/2; //Получение координаты х
x2=x1*cos(anglex)-y1*sin(anglex); //Смещение координат в случае
y2=y1*cos(anglex)+x1*sin(anglex); //Поворота графика на угол anglex
x =x2*(mash+pmsh)+sdx; //Координата х с учетом возможного сдвига и масштаба
y =-y2*(mash+pmsh)+sdy; //Координата у с учетом возможного сдвига ,масштаба и добавочного масштаба для у
putpixel(maxx/2+x,maxy/2+y,5); //Нанесение полученной точки на экран
}
//drawset(); //Вызов функции drawset
} //Конец функции построения графика
void main(){ //Основная функция
char ci;
int gdriver = DETECT, gmode, errorcode;
clrscr();
printf("\nGraffic y=A*(exp(x/2)+exp(-x/2))/2\n");
printf("\nEnter A:");
while(scanf("%lf", &A)!=1){ //Ввод коэффициентов графика
printf("\nError! Re-enter please> ");
ci='c'; while((ci!='\n') && (ci!=EOF)) ci=getchar();}
clrscr();
printf("\nControl:\n\nQ - quit\nG - hide set\n\nA - dicrease \"y\" scale\nS - increase \"y\" scale\nD - reset \"y\" scale\n\nZ - rotate -5gr\nX - rotate 5gr\nC - reset rotate angle");
printf("\n\n2 - y-15pix\n8 - y+15pix\n4 - x-15pix\n6 - x+15pix\n5 - reset");
getch();
initgraph(&gdriver, &gmode, "C:\\BORLANDC\\BGI"); //Инициализация графического режима
errorcode = graphresult();
if (errorcode != grOk){
printf("Graphics error: %s\n", grapherrormsg(errorcode)); //Вывод сооьветствующего сообщения в случае ошибки инициализации графического режима
printf("Press any key to halt:");
getch();
exit(1);}
maxx=getmaxx();//Получение разрешения экрана
maxy=getmaxy();
while(1){ //Вывод графика и ожидание действий
drawset();
ci=getch();
if(ci=='q') break;
if(ci=='g') g++;
if(ci=='x') anglex+=angle5;
if(ci=='z') anglex-=angle5;
if(ci=='a') pmsh-=(mash+pmsh)/10;
if(ci=='s') pmsh+=(mash+pmsh)/10;
if(ci=='c') anglex=0;
if(ci=='d') pmsh=0;
if(ci== 50) sdy+=15;
if(ci== 52) sdx-=15;
if(ci== 53) sdy=sdx=0;
if(ci== 54) sdx+=15;
if(ci== 56) sdy-=15;}
closegraph(); //Закрытие видеорежима
} //Конец программы
Помогите, заранее благодарен! Спасибо!
Si{R}ius
03.05.2009, 13:21
Такая задача: (Паскаль)
Два прямоугольника со сторонами, непараллельными осям экрана, заданы координатами трех последовательных вершин. Выяснить, находится ли какой-нибудь из прямоугольников в средине другого..
Заранее благодарен за помощь!
[pascal]
собственно мессага: ввод массива чисел(размер не менее 15), ввод числа и поиск его в массиве, если значений несколько-опр. их количество и порядковые номера, если значений нет-поиск ближайшего большего
заранее спасибо( + за мной не заржавеет ;) )
Ну очень надо) Язык C++ (консольки)
В большинстве лабораторок прилогается блок схема и программа на бейсике!
1.http://s47.radikal.ru/i116/0905/28/52206235c8dft.jpg (http://radikal.ru/F/s47.radikal.ru/i116/0905/28/52206235c8df.jpg.html)
2.http://s43.radikal.ru/i101/0905/60/edca79c7ffa8t.jpg (http://radikal.ru/F/s43.radikal.ru/i101/0905/60/edca79c7ffa8.jpg.html) http://s51.radikal.ru/i131/0905/4d/be537c239c17t.jpg (http://radikal.ru/F/s51.radikal.ru/i131/0905/4d/be537c239c17.jpg.html) http://s51.radikal.ru/i131/0905/73/f58fbd5e1099t.jpg (http://radikal.ru/F/s51.radikal.ru/i131/0905/73/f58fbd5e1099.jpg.html)
3.http://s53.radikal.ru/i140/0905/5d/62073f4ddfc1t.jpg (http://radikal.ru/F/s53.radikal.ru/i140/0905/5d/62073f4ddfc1.jpg.html)
4.http://s39.radikal.ru/i083/0905/3f/a3599ba7017ft.jpg (http://radikal.ru/F/s39.radikal.ru/i083/0905/3f/a3599ba7017f.jpg.html) http://i011.radikal.ru/0905/91/f14a64238e91t.jpg (http://radikal.ru/F/i011.radikal.ru/0905/91/f14a64238e91.jpg.html)
5. http://s55.radikal.ru/i147/0905/77/e8f2de1e3593t.jpg (http://radikal.ru/F/s55.radikal.ru/i147/0905/77/e8f2de1e3593.jpg.html)
6.http://s54.radikal.ru/i145/0905/fa/3aba53fe798at.jpg (http://radikal.ru/F/s54.radikal.ru/i145/0905/fa/3aba53fe798a.jpg.html)
7.http://s47.radikal.ru/i118/0905/f1/e818a18c978at.jpg (http://radikal.ru/F/s47.radikal.ru/i118/0905/f1/e818a18c978a.jpg.html)
Всё в одном архиве (http://ifolder.ru/11933057)
Flame of Soul
03.05.2009, 20:43
[pascal]
собственно мессага: ввод массива чисел(размер не менее 15), ввод числа и поиск его в массиве, если значений несколько-опр. их количество и порядковые номера, если значений нет-поиск ближайшего большего
заранее спасибо( + за мной не заржавеет ;) )
http://xmages.net/out.php/i207199_Untitled2.gif
собственно код: (он на дельфи но переделаешь в лёт :D )
program Project1;
uses
SysUtils;
var
s: array [0..14] of integer;
i,x,j,b: integer;
begin
writeln('********************************'+#10+
'Vvedie element`i massiva:');
for i:=0 to 14 do
begin
read(s[i]);
end;
writeln('________________________________' + #10 +
'Massiv zapolnen do 15 znachenii' + #10 +
'Vvedite chiclo poiska v massive');
read(x);
writeln('################################' + #10);
b:=0;
for i:=0 to 14 do
begin
if s[i]=x then
begin
writeln('> ='+IntToStr(i));
b:=b+1;
end;
end;
if b>0 then
begin
writeln('Odinakovih elementov:' + IntToStr(b));
end
else
begin
x:=s[0];
for i:=1 to 14 do
begin
if s[i]>x then
begin
x:=s[i];
b:=i;
end;
end;
writeln('Odinakovih elementov nety:' + #10 +
'Samii Bolshoi Element:' + IntToStr(x) + #10 +
'On stoit v massive pod nomerom: '+IntToStr(b));
end;
read(x);
end.
i,x,j,b: integer; -Не обращай на j внимание, просто мега обфускация.
2 TR0J@N
2.http://s43.radikal.ru/i101/0905/60/edca79c7ffa8t.jpg (http://radikal.ru/F/s43.radikal.ru/i101/0905/60/edca79c7ffa8.jpg.html) http://s51.radikal.ru/i131/0905/4d/be537c239c17t.jpg (http://radikal.ru/F/s51.radikal.ru/i131/0905/4d/be537c239c17.jpg.html) http://s51.radikal.ru/i131/0905/73/f58fbd5e1099t.jpg (http://radikal.ru/F/s51.radikal.ru/i131/0905/73/f58fbd5e1099.jpg.html)
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
clrscr();
float A,B,C,S,G;
float G1,P,R,R1;
printf("Input A,B,S -> ");
scanf("%f%f%f",&A,&B,&S);
G=2*S/(A*B);
G1=sqrt(1-G*G);
C=sqrt(A*A+B*B-2*A*B*G1);
P=A+B+C;
R=A*B*C/(4*S);
R1=2*S/P;
printf(" P = %.2f\n R = %.2f\n R1 = %.2f\n",P,R,R1);
getch();
}
3.http://s53.radikal.ru/i140/0905/5d/62073f4ddfc1t.jpg (http://radikal.ru/F/s53.radikal.ru/i140/0905/5d/62073f4ddfc1.jpg.html)
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
clrscr();
float a,b,c,d,y,x;
printf("BBegu c, d, b, x -> ");
scanf("%f%f%f%f",&c,&d,&b,&x);
a=c*d/(c*c-d*d);
printf("%f\n",a);
if(a<5)
y=a+b/sqrt(25+x*x);
else
y=b*cos(a);
printf("y = %.2f\n",y);
getch();
}
продолжение..
4.http://s39.radikal.ru/i083/0905/3f/a3599ba7017ft.jpg (http://radikal.ru/F/s39.radikal.ru/i083/0905/3f/a3599ba7017f.jpg.html) http://i011.radikal.ru/0905/91/f14a64238e91t.jpg (http://radikal.ru/F/i011.radikal.ru/0905/91/f14a64238e91.jpg.html)
Рис. 6.
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
clrscr();
int x,n,i,f=1;
float e=1;
printf("BBegu X u N -> ");
scanf("%d%d",&x,&n);
for(i=1; i<=n; i++){
f*=i;
e+=pow(x,i)/f;
// printf("%f %d %f\n",e,f,pow(x,i));
}
printf("e = %.2f\n",e);
getch();
}
Рис. 6.
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int main()
{
clrscr();
int i,j,x,y,min;
int a[10][10];
int n,m;
printf("BBegu pa3mep maccuBa -> ");
scanf("%d%d",&n,&m);
for(i=0; i<n; i++){
for(j=0; j<m; j++){
a[i][j]=rand()%100;
printf("%3d ",a[i][j]);
}
printf("\n");
}
min=a[0][0];
for(i=0; i<n; i++)
for(j=1; j<m; j++)
if(a[i][j]<min){
min=a[i][j];
x=i;
y=j;
}
printf("\nMin - %d (%d cTpoka, %d sTolbec)\n",min,x+1,y+1);
getch();
return 0;
}
ps:
в с++ если что сам переделаешь, там только надо заменить printf и scanf.
Помогите пожалуйста! язык Delphi
Задание: Решить поставленные задачи двумя способами . с применением рекурсии и без
нее.
1. Найти наибольший общий делитель чисел M и N. Используйте теорему
Эйлера: Если M делится на N, то НОД (N, M)=N, иначе НОД (N, M)=
=НОД (M mod N, N)
Si{R}ius
04.05.2009, 12:16
Помогите мне с задачей на паскале!
Два прямоугольника со сторонами, непараллельными осям экрана, заданы координатами трех последовательных вершин. Выяснить, находится ли какой-нибудь из прямоугольников в средине другого и вывести ответ..
Задача на Паскале
Помагите пожалуйста решить эти задачки:
1) Дано натуральное число n и целые числа a1,a2,.....,an. Выяснить, верно ли, что количество отрицательных чисел ai, превышают x.
2) Дано предложение. Напечатать все его различные слова
3) Поле шахматной доски определяеться парой натуральных чисел, кажде из каторых не превосходит 8. первое число номер вертикали (при счете слева направо ), второе - номер горизантали (при счете снизу вверх ). Дано натуральное числа а,b,c,d,e,f каждое из каторых не превосходит 8.
На поле (a,b) расположена белая фигура, на поле (c,d)- черная фигура.Определить может ли белая фигура пойти на поле (e,f) не попав при этом под удар черной фигуры.
Рассмотреть следущий вариант сочетаний белой и черной фигуры
Слон и ферзь
Помогите, пожалуйста, разработать программу нахождения значения определенного интеграла методом Симпсона (на паскале).
Вот, собственно, функция для интегрирования:
y=log3(внизу)х (х+х^2)^-1 .
Исходные данные: интервал интегрирования, количество разбиений отрезка.
Результат нужно получить такой: значение интеграла, график заданной функции.
Решение интерпретировать графически (автоматическое масштабирование, название графика, метки на осях и обозначение осей).
Также нужно предусмотреть переключение между графическим и текстовым окнами для ввода исходной информации и вывода результатов интегрирования и графической интерпретации. И предусмотреть проверку корректности данных.
C++
Плиз укаво есть время добейте задания из поста #1383 (http://forum.antichat.ru/showpost.php?p=1256647&postcount=1383)
Задания номер: 1,5,6,7
Flame of Soul
+ поставил, хоть и сделал немного не то...(следовало найти не самое большое значение, а БЛИЖАЙШЕЕ большое)
schwarze
04.05.2009, 23:53
C++
Разработать способ сбора и сортировки сведедний: "Аптченый киоск".
- ФИО продавца
- Объем продажи лекарств за день
- Объем продажи лекарств по рецептам за день
- Объем продажи лекарств без рецептов за день
- Объем продажи лекарств по льготным ценам за день
- Общая выручка за день.
frostJKE
05.05.2009, 08:10
Помогите пожалуйста с лабораторной по структурам желательно на языке С++.
Вот собственно само задание:
Сведения об экзамене содержат следующие данные: дисциплину (программирование, алгебра, история, геометрия), дату сдачи экзамена (год, месяц, день), сведения о студенте (факультет, курс, группа, номер в журнале) и экзаменационную оценку.
Задан набор сведений об экзаменах, сданных студентами за последние 2 года; в них факультет и предмет кодируются первыми буквами названия. Определить количество нуспевающих по программированию на экономическом факультете среди студентов первого курса, сдававших экзамены зимой 1995 года, вывести на экран их группу и номер в журнале.
Буду очень признателен за вашу помощь!
Нужно написать программу + алгоритм(если сможете)
Сформировать массивы W, X, Y, Z из 12 элементов каждый. Вывести их на экран. Вычислить и вывести на экран значение:
___P(Y) + P(X)
S = _________
___S(W) + S(Z)
где P(X), P(Y) - произведения положительных элементов массивов Х и У соответственно; S(W), S(Z) - суммы положительных элементов массивов
W и Z соотвественно. Использовать подпрограммы
Flame of Soul
06.05.2009, 16:22
Нужно написать программу + алгоритм(если сможете)
указывайте ЯП (язык программирования);
program Project1;
uses
SysUtils;
var
x,y,w,z: array[0..11] of real;
px,py,sw,sz,S: real;
i: integer;
begin
writeln('#> PROGRAMMA: rabota s massivami.');
writeln('========================================= ==================');
writeln('#> array X;');
writeln('========================================= ==================');
writeln('#> x[0] := 1.20; x[1] := 3.63; x[2] := 4.52; x[3] :=-2.22;');
writeln('#> x[4] :=-12.0; x[5] :=-7.52; x[6] := 1.65; x[7] := 2.22;');
writeln('#> x[8] := 2.09; x[9] :=-6.23; x[10]:= 4.09; x[11]:= 2.43;'+#10);
writeln('#> array Y;');
writeln('========================================= ==================');
writeln('#> y[0] :=-3.56; y[1] := 2.02; y[2] := 1.01; y[3] := 6.52;');
writeln('#> y[4] :=-11.7; y[5] :=-7.52; y[6] := 1.13; y[7] := 7.23;');
writeln('#> y[8] := 5.55; y[9] := 6.66; y[10]:=-7.77; y[11]:=-8.88;'+#10);
writeln('#> array W;');
writeln('========================================= ==================');
writeln('#> w[0] := 1.22; w[1] := 3.03; w[2] := 2.32; w[3] := 5.63;');
writeln('#> w[4] :=-22.2; w[5] := 7.22; w[6] :=-5.65; w[7] :=-7.85;');
writeln('#> w[8] := 2475; w[9] :=-6.21; w[10]:= 3.17; w[11]:=-2.03;'+#10);
writeln('#> array Z;');
writeln('========================================= ==================');
writeln('#> z[0] :=-8.88; z[1] := 8.01; z[2] :=-1.99; z[3] := 1.27;');
writeln('#> z[4] := 1.05; z[5] :=-7.77; z[6] := 8.02; z[7] := 2.38;');
writeln('#> z[8] := 4.09; z[9] := 5.23; z[10]:=-6.66; z[11]:= 4.23;'+#10);
//=============#===============#===============#==== ==========#====*
x(.0.) := 1.20; x(.1.) := 3.63; x(.2.) := 4.52; x(.3.) :=-2.22;//---
x(.4.) :=-12.0; x(.5.) :=-7.52; x(.6.) := 1.65; x(.7.) := 2.22;//---
x(.8.) := 2.09; x(.9.) :=-6.23; x(.10.):= 4.09; x(.11.):= 2.43;//---
y(.0.) :=-3.56; y(.1.) := 2.02; y(.2.) := 1.01; y(.3.) := 6.52;//---
y(.4.) :=-11.7; y(.5.) :=-7.52; y(.6.) := 1.13; y(.7.) := 7.23;//---
y(.8.) := 5.55; y(.9.) := 6.66; y(.10.):=-7.77; y(.11.):=-8.88;//---
w(.0.) := 1.22; w(.1.) := 3.03; w(.2.) := 2.32; w(.3.) := 5.63;//---
w(.4.) :=-22.2; w(.5.) := 7.22; w(.6.) :=-5.65; w(.7.) :=-7.85;//---
w(.8.) := 2475; w(.9.) :=-6.21; w(.10.):= 3.17; w(.11.):=-2.03;//---
z(.0.) :=-8.88; z(.1.) := 8.01; z(.2.) := 1.99; z(.3.) := 1.27;//---
z(.4.) := 1.05; z(.5.) :=-7.77; z(.6.) := 8.02; z(.7.) := 2.38;//---
z(.8.) := 4.09; z(.9.) := 5.23; z(.10.):=-6.66; z(.11.):= 4.23;//---
writeln('_________________________________________ __________________');
px:=1; py:=1; sw:=0; sz:=0;
for i:=0 to 11 do if x[i]>0 then px:=px*x[i];
for i:=0 to 11 do if y[i]>0 then py:=py*y[i];
for i:=0 to 11 do if w[i]>0 then sw:=sw+w[i];
for i:=0 to 11 do if z[i]>0 then sz:=sz+z[i];
S:=(px+py)/(sw+sz);
writeln('#> P(x) = ',px:0:8);
writeln('#> P(y) = ',py:0:8);
writeln('#> S(w) = ',sw:0:8);
writeln('#> S(z) = ',sz:0:8,#10);
writeln('#> S = [P(x)+P(y)]/[S(w)+S(z)] = ',s:0,3);
readln;
end.
тоже самое, только на си
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
clrscr();
int W[12], X[12], Y[12], Z[12];
int pY=1, pX=1, sW=0, sZ=0, i;
float S;
//заполнение и вывод массивов
printf(" W X Y Z\n");
for(i=0; i<12; i++){
W[i]=rand()%10-5;
X[i]=rand()%10-5;
Y[i]=rand()%10-5;
Z[i]=rand()%10-5;
printf(" %3d %3d %3d %3d\n",W[i],X[i],Y[i],Z[i]);
}
//Произведение и сумма
for(i=0; i<12; i++){
if(Y[i]>0) pY*=Y[i];
if(X[i]>0) pX*=X[i];
if(W[i]>0) sW+=W[i];
if(Z[i]>0) sZ+=Z[i];
}
//printf("%d %d %d %d",pY,pX,sW,sZ);
S=(float)(pY+pX)/(sW+sZ);
printf("\nS = %.2f",S);
getch();
}
А подпрограммы где ? :)
И вправду (=
Переделано :
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
//прототипы функций
float S_c4eT(int *, int *, int *, int *);
void mas_print(int *, int *, int *, int *);
void rand_zap(int *, int *, int *, int *);
clrscr();
int W[12], X[12], Y[12], Z[12];
//вызов ф-й
rand_zap(W,X,Y,Z);
mas_print(W,X,Y,Z);
printf("\nS = %.2f",S_c4eT(W,X,Y,Z));
getch();
}
//ф-я вывода массивов
void mas_print(int w[12], int x[12], int y[12], int z[12])
{
printf(" W X Y Z\n");
for(int i=0; i<12; i++)
printf(" %3d %3d %3d %3d\n",w[i],x[i],y[i],z[i]);
}
//ф-я подсчета S
float S_c4eT(int w[12], int x[12],int y[12], int z[12])
{
int pY=1,pX=1,sW=0,sZ=0;
for(int i=0; i<12; i++){
if(y[i]>0) pY*=y[i];
if(x[i]>0) pX*=x[i];
if(w[i]>0) sW+=w[i];
if(z[i]>0) sZ+=z[i];
}
return (float)(pY+pX)/(sW+sZ);
}
//рандомное заполнение массивов
void rand_zap(int W[12], int X[12], int Y[12], int Z[12])
{
for(int i=0; i<12; i++){
W[i]=rand()%10-5;
X[i]=rand()%10-5;
Y[i]=rand()%10-5;
Z[i]=rand()%10-5;
}
}
делать что-то нефиг(
2 TR0J@N :
5:
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int a[10]={6,-7,23,100,-45,62,-30,-21,115,-32};
int s=0;
for(int i=1; i<10; s+=a[i], i+=2);
printf("S = %d\n",s);
getch();
}
6:
#include<stdio.h>
#include<conio.h>
#include<math.h>
float fns(int x, int y)
{
return (float)sqrt(x*x+y*y);
}
void main()
{
clrscr();
int x,y,a,b,c;
float S;
printf("Input x,y,a,b,c -> ");
scanf("%d%d%d%d%d",&x,&y,&a,&b,&c);
S=(fns(x,y)-fns(a,b))/(3*cos(c)+fns(b,c));
printf("\nS = %.2f\n",S);
getch();
}
7: (только без подпрограмм, как в примере на бэйсике)
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int aS=0,bS=0;
float Z;
int a[8],b[10];
for(int i=0; i<8; i++){
a[i]=i+1;
aS+=a[i]*a[i];
}
for(int j=0; j<10; j++){
b[j]=j+1;
bS+=b[j]*b[j];
}
Z=(float)aS/bS;
printf("Z = %.2f",Z);
getch();
}
И вправду (=
Переделано :
#include<stdio.h>
....
Я думаю, что в задании подразумевается через подрограммы считать суммы элементов ;)
Помогите, не знаю в чем трабла, но не могу написать прогу-все время в файлах вместо цифр иероглифы получаются
собственно задача: PASCAL
Дан текстовой файл с числами, нужно рассортировать элементы в 2 файла: в первом положительные элементы, во втором отрицательные
NigHT_0WL
07.05.2009, 15:43
Помогите, не знаю в чем трабла, но не могу написать прогу-все время в файлах вместо цифр иероглифы получаются
попробуй создавать файлы в редакторе, которым пользуешься для написания программ.
Скопировать все строки текстового файла F в текстовой файл G, добовляя после каждой строки число, равное её длинне( количестово символов, ключая пробелы )
//если было...укажите страницу пжл...
И ещё одна....
Нужно записать число-буквами...
задачи в delphi
Всем доброго времени суток.
Помогите с решением небольших траблов с лаболаторной.
Требуеться разработать консольное приложение обрабатывающее текстовый файл, каждая строка которого содержит запись фиксированного формата, поля записей разделяються запятыми.
Поля в записях нумеруються с 0, слева направо.
В результате формируеться выходной файл формата аналогичного входному (txt), каждая запись которого включает в себя следующие поля исходной записи: 0, 1, 4, 9, 10, 12, 13, 14
Реализация осуществляеться в Delphi.
Заранее благодарен.
попробуй создавать файлы в редакторе, которым пользуешься для написания программ.
эт как? ты мне хочешь сказать чтобы я создал файл из окна TP что ли? исходный файлик не при чем-он у меня почемуто читает из файла в машинном коде и оставляет в таком же виде без изменений....
Третью неделю уже не могу написАть лабораторную =( Вот решил спросить у добрых людей здесь. Задача заключается в прочтении текста о ноутбуках из файла file.txt и записывания данных о каждом ноутбуке в структуру.
Пример файла file.txt
Acer Note Lite | 2669 | 5.6 | 02.0x11.8x08.3 | 100 | 40 | 10.4 | 1 | 1024x768 | 60 | 0.774
ASW ND5123T | 3489 | 7.2 | 02.3x11.8x10.1 | 133 | 32 | 12.1 | 2 | 1024x768 | 70 | 1.300
ARMNote TS80CD | 3699 | 7.2 | 02.0x11.8x08.8 | 133 | 64 | 11.3 | 1 | 1024x768 | 75 | 1.300
AST Ascentia P50 | 4499 | 7.5 | 02.3x11.5x09.0 | 133 | 40 | 11.3 | 1 | 0800x600 | 70 | 0.774
BSI NP8657D | 2605 | 8.0 | 02.3x11.3x09.3 | 133 | 40 | 11.3 | 1 | 1024x768 | 60 | 0.810
BSI NP5265A | 3765 | 8.2 | 02.5x11.8x09.0 | 150 | 32 | 12.1 | 2 | 1024x768 | 70 | 1.300
Dell Xpi P100SD | 3459 | 6.0 | 02.3x12.0x08.8 | 100 | 40 | 10.3 | 1 | 1024x768 | 60 | 0.773
Digital HiNote | 4799 | 4.0 | 01.3x11.0x08.8 | 120 | 40 | 10.4 | 1 | 0800x600 | 56 | 1.000
Gateway Solo S5 | 4499 | 5.6 | 02.0x11.0x08.8 | 133 | 40 | 11.3 | 2 | 1024x768 | 60 | 0.686
Hertz Z-Optima NB | 3995 | 8.0 | 02.3x11.9x09.0 | 150 | 40 | 11.2 | 2 | 1024x768 | 75 | 1.000
HP OmniBook 5500 | 6120 | 7.1 | 02.0x11.9x09.0 | 133 | 64 | 11.4 | 1 | 1024x768 | 75 | 1.300
IBM ThinkPad 560 | 3749 | 4.1 | 01.3x11.5x08.8 | 120 | 40 | 12.1 | 2 | 1024x768 | 85 | 0.774
NEC Versa 4080H | 4780 | 6.6 | 02.3x11.8x09.5 | 120 | 48 | 10.4 | 1 | 0800x600 | 70 | 0.776
Polywell Poly 500 | 3300 | 7.9 | 02.3x11.8x09.0 | 120 | 40 | 10.4 | 1 | 1024x768 | 72 | 1.000
Samsung SENS 810 | 3667 | 8.7 | 02.3x11.5x09.5 | 100 | 32 | 11.4 | 2 | 1024x768 | 75 | 0.773
Twinhead Slimnote | 2965 | 7.4 | 02.0x11.5x08.0 | 075 | 64 | 10.4 | 1 | 1024x768 | 70 | 0.772
Вот что у меня получилось (т.е. не получилось)
#include <stdio.h>
#include <stdlib.h>
typedef struct _NOTEBOOK {
char model[20]; // название модели
int price; // цена
float mass; // масса
struct _size { // размеры
float highter; // высота
float longer; // длина
float widther; // ширина
}size;
int rate_of_CPU; // частота процессора
int max_RAM; // объём оперативной памяти
float diagonal_of_display; // диагональ дисплея
int video_memory; // объём видео памяти
struct _disp_res { // разрешение дисплея
int x;
int y;
}disp_res;
int rate_of_dispay; // частота дисплея
float max_HDD; // объём ROM
}NOTEBOOK;
int open_and_read_file(NOTEBOOK* A);
int main(){
NOTEBOOK A[1000];
open_and_read_file(A);
}
int open_and_read_file(NOTEBOOK* A){
FILE *in = fopen("file.txt", "r"); // отерыте файла
fseek(in, 0, 2); // выставление указателя в конец файла
long end = ftell(in); // вычисление длины файла. функция возвращает текущее положение
char *text;
text = (char *) malloc(end); //возвращает указатель на end байт неинициализированной памяти
fseek(in, 0L, 0); // выставление указателя в начало файла
fread(text, end, 1, in); // читаем файл в переменную text
printf("\n%s\n", text); // печатаем...
fseek(in, 0L, 0); // выставление указателя в начало файла
//===
int line=0,k;
int table=0;
long i=0, n;
int symbol;
char *iname;
//===
for(k=0;(symbol=getc(in))!=EOF;k++) { // идём по строкам до конца файла
if (symbol!='\n'){
if(symbol=='|'){
table++;
}
if(symbol!='|'&&table==0){ // считываем название модели (столбец 0)
for(i=0; symbol!='|'; i++){ // считаем длину имени
A[k].model[i]=getc(in);
//printf("%d ", A[k].model[i]);
}
// fseek(in, n, 0); // выставление указателя в начало файла
// fread(iname, i, 100, in); // читаем имя в переменную iname
}
}
else {
table=0;
};
}
fclose(in);
}
Программа вылетает с ошибкой segmetation fault на этапе нахождения названия первого ноутбука...
Перекопал уже все учебники, не знаю в чём причина... Кому не в лом помогите пожалуйста, скоро сессия =(
ah_liza_liza
08.05.2009, 16:17
:confused:
написать программу с заглушками(?)
которая называет сумму и число тех элементов заданного массива X1,X2,...,Xn; которые попадают на заданный отрезок.
(с++)
заранее спасибо ^^
:confused:
написать программу с заглушками(?)
которая называет сумму и число тех элементов заданного массива X1,X2,...,Xn; которые попадают на заданный отрезок.
(с++)
заранее спасибо ^^
Честно говоря не очень понял задания (особенно что такое заглушки), но может быть это поможет:
# include <stdio.h> // библиотека для вызова функций ввода и вывода
# include <time.h> // библиотека для заполнения массива случайными числами (зависит от текущего времени)
# include <stdlib.h> // библиотека для вызова функции random
#define ARRAY_MAX 1000
int main(void){
srand(time(NULL));
int i,j,x1,x2;
int X[ARRAY_MAX];
printf("Введите x1 ");
scanf("%d", &x1);
printf("Введите x2 ");
scanf("%d", &x2);
for(i=0; i<ARRAY_MAX; i++){ // цикл заполнения массива
X[i]=rand()%100; // генерирования случайного числа
printf("%d, ", X[i]);
}
printf("\n\n");
int summa=0;
for(i=x1-1, j=0;i<x2;i++){
summa=summa+X[i];
j++;
}
printf("Сумма элементов = %d, число элементов = %d\n", summa, j);
}
ah_liza_liza
09.05.2009, 07:39
VIP
спасибо большое)
у меня тоолько два вопроса теперь)
что такое #define ARRAY_MAX 1000
и почему у меня ошибки на счет библиотек
пишет что то
э вроде
.\пыщь.cpp(3) : warning C4627: '#include <stdio.h>': skipped when looking for precompiled header use
Add directive to 'stdafx.h' or rebuild precompiled header
0_0
ah_liza_liza
09.05.2009, 07:42
а можно как нибудь без
#define ARRAY_MAX 1000 ???
я боюсь быть не понятой в колледже)
Chupa-Chups
09.05.2009, 10:12
Ну заместь
#define ARRAY_MAX 1000
можно написать
const int ARRAY_MAX=1000;
директива #define означаета, что слову ARRAY_MAX присваевается значение 1000. В С так оглашали константы. А в С++ появились константы определенных типов. Но всеравно этот метод тоже используется. Особенно часто, при использовании заголовочных файлов(что бы по случайности не подключить их несколько раз) но в это углублятся не буду.
То что пишет ошибку подключи и stdafx.h
Тоесть в начале допиши #include <stdafx.h>
ah_liza_liza
09.05.2009, 11:43
Ну заместь
#define ARRAY_MAX 1000
можно написать
const int ARRAY_MAX=1000;
директива #define означаета, что слову ARRAY_MAX присваевается значение 1000. В С так оглашали константы. А в С++ появились константы определенных типов. Но всеравно этот метод тоже используется. Особенно часто, при использовании заголовочных файлов(что бы по случайности не подключить их несколько раз) но в это углублятся не буду.
То что пишет ошибку подключи и stdafx.h
Тоесть в начале допиши #include <stdafx.h>
мы ни разу не проходили никаких #define потому я и спросила
можно м как нибудь по другому
на счет ошибки
дописывала
не работает.
Товарищи помагите решить 2 задачки:
Найти значение переменной Y
http://s57.radikal.ru/i158/0905/c3/9c7ea52a1c1f.jpg
Найти значение переменной S
http://s58.radikal.ru/i161/0905/4d/b8c73389573a.jpg
Chupa-Chups
09.05.2009, 14:03
мы ни разу не проходили никаких #define потому я и спросила
можно м как нибудь по другому
на счет ошибки
дописывала
не работает.
#include "stdafx.h"
# include <stdio.h> // библиотека для вызова функций ввода и вывода
# include <time.h> // библиотека для заполнения массива случайными числами (зависит от текущего времени)
# include <stdlib.h> // библиотека для вызова функции random
#define ARRAY_MAX 1000
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(NULL));
int i,j,x1,x2;
int X[ARRAY_MAX];
printf("Vvdite x1 ");
scanf("%d", &x1);
printf("Vvdite x2 ");
scanf("%d", &x2);
for(i=0; i<ARRAY_MAX; i++){ // цикл заполнения массива
X[i]=rand()%100; // генерирования случайного числа
printf("%d, ", X[i]);
}
printf("\n\n");
int summa=0;
for(i=x1-1, j=0;i<x2;i++){
summa=summa+X[i];
j++;
}
printf("Symma elementov = %d, 4islo elementov = %d\n", summa, j);
return 0;
}
Проверь так.
Я не смотрел на результаты какие оно выдает, но откомпилировалось в Visual Studio 2005 :)
Sibogatov
09.05.2009, 15:52
Помогите пожалуйста... Нужно нарисовать часы, с помощью Visual C++ вот задание:
В диалоговом окне нарисовать часы (секундная, минутная и часовая стрелки). Цвет циферблата и стрелок выбираем из палитры с помощью объекта класса CColorDialog. Реальное время считывать с помощью класса CTime
ah_liza_liza
09.05.2009, 18:40
Проверь так.
Я не смотрел на результаты какие оно выдает, но откомпилировалось в Visual Studio 2005 :)
у меня 2008
попробывала выдает теперь
\пыщь.cpp(39) : error C2061: syntax error : identifier '_TCHAR'
.\пыщь.cpp(42) : warning C4244: 'argument' : conversion from 'time_t' to 'unsigned int', possible loss of data
ар
глупая программа)
кто-нибудь поможет?
задачка в #1402 посте
помогите плс
задали вот такое заданием: написать программу расчитывающаю количество дней,часов,минут,секунд между двумя датами, заданными в формате например 12.01.2009 14:37:59 и системной датой, временем... расчёт должен вестись по всем правилам, с учётом високосных годов....
и если можно плиз с пояснениями.....
Sibogatov
10.05.2009, 09:22
вот код скажите плиз че не так?:
#include <windows.h>
#include <string.h>
#include <time.h>
#include <math.h>
#define ID_TIMER 1
#define TWOPI (2 * 3.14159)
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "AnaClock" ;
HWND hwnd;
MSG msg;
WNDCLASSEX wndclass ;
wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = NULL ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = NULL ;
RegisterClassEx (&wndclass) ;
hwnd = CreateWindow (szAppName, "Analog Clock",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;
if (!SetTimer (hwnd, ID_TIMER, 1000, NULL))
{
MessageBox (hwnd, "Too many clocks or timers!", szAppName,
MB_ICONEXCLAMATION | MB_OK) ;
return FALSE ;
}
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
void SetIsotropic (HDC hdc, int cxClient, int cyClient)
{
SetMapMode (hdc, MM_ISOTROPIC) ;
SetWindowExtEx (hdc, 1000, 1000, NULL) ;
SetViewportExtEx (hdc, cxClient / 2, -cyClient / 2, NULL) ;
SetViewportOrgEx (hdc, cxClient / 2, cyClient / 2, NULL) ;
}
void RotatePoint (POINT pt[], int iNum, int iAngle)
{
int i ;
POINT ptTemp ;
for (i = 0 ; i < iNum ; i++)
{
ptTemp.x = (int) (pt[i].x * cos (TWOPI * iAngle / 360) +
pt[i].y * sin (TWOPI * iAngle / 360)) ;
ptTemp.y = (int) (pt[i].y * cos (TWOPI * iAngle / 360) -
pt[i].x * sin (TWOPI * iAngle / 360)) ;
pt[i] = ptTemp ;
}
}
void DrawClock (HDC hdc)
{
int iAngle ;
POINT pt[3] ;
for (iAngle = 0 ; iAngle < 360 ; iAngle += 6)
{
pt[0].x = 0 ;
pt[0].y = 900 ;
RotatePoint (pt, 1, iAngle) ;
pt[2].x = pt[2].y = iAngle % 5 ? 33 : 100 ;
pt[0].x -= pt[2].x / 2 ;
pt[0].y -= pt[2].y / 2 ;
pt[1].x = pt[0].x + pt[2].x ;
pt[1].y = pt[0].y + pt[2].y ;
SelectObject (hdc, GetStockObject (BLACK_BRUSH)) ;
Ellipse (hdc, pt[0].x, pt[0].y, pt[1].x, pt[1].y) ;
}
}
void DrawHands (HDC hdc, struct tm *datetime, BOOL bChange)
{
static POINT pt[3][5] = { 0, -150, 100, 0, 0, 600, -100, 0, 0, -150,
0, -200, 50, 0, 0, 800, -50, 0, 0, -200,
0, 0, 0, 0, 0, 0, 0, 0, 0, 800 } ;
int i, iAngle[3] ;
POINT ptTemp[3][5] ;
iAngle[0] = (datetime->tm_hour * 30) % 360 + datetime->tm_min / 2 ;
iAngle[1] = datetime->tm_min * 6 ;
iAngle[2] = datetime->tm_sec * 6 ;
memcpy (ptTemp, pt, sizeof (pt)) ;
for (i = bChange ? 0 : 2 ; i < 3 ; i++)
{
RotatePoint (ptTemp[i], 5, iAngle[i]) ;
Polyline (hdc, ptTemp[i], 5) ;
}
}
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
static int cxClient, cyClient ;
static struct tm dtPrevious ;
BOOL bChange ;
HDC hdc ;
PAINTSTRUCT ps ;
time_t lTime ;
struct tm *datetime ;
switch (iMsg)
{
case WM_CREATE :
time (&lTime) ;
datetime = localtime (&lTime) ;
dtPrevious = * datetime ;
return 0 ;
case WM_SIZE :
cxClient = LOWORD (lParam) ;
cyClient = HIWORD (lParam) ;
return 0 ;
case WM_TIMER :
time (&lTime) ;
datetime = localtime (&lTime) ;
bChange = datetime->tm_hour != dtPrevious.tm_hour ||
datetime->tm_min != dtPrevious.tm_min ;
hdc = GetDC (hwnd) ;
SetIsotropic (hdc, cxClient, cyClient) ;
SelectObject (hdc, GetStockObject (WHITE_PEN)) ;
DrawHands (hdc, &dtPrevious, bChange) ;
SelectObject (hdc, GetStockObject (BLACK_PEN)) ;
DrawHands (hdc, datetime, TRUE) ;
ReleaseDC (hwnd, hdc) ;
dtPrevious = *datetime ;
return 0 ;
case WM_PAINT :
hdc = BeginPaint (hwnd, &ps) ;
SetIsotropic (hdc, cxClient, cyClient) ;
DrawClock (hdc) ;
DrawHands (hdc, &dtPrevious, TRUE) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY :
KillTimer (hwnd, ID_TIMER) ;
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
ah_liza_liza
10.05.2009, 14:09
массив X1,X2,...,Xn попадает на заданный отрезок
Координатами x,y заданы n точек плоскости.
Найти:
• процент точек, удаление которых от начала координат больше заданной величины r и притом обе координаты положительны;
• среднее удаление всех точек от начала координат.
Заранее благодарю
=*
ah_liza_liza
10.05.2009, 14:12
з.ы.
должна быть программа с заглушками.
Помогите пожалуйста , чтобы работало через Trubo C.
Реализовать команду, переставляющую местами первую и последнюю записи данного файла, состоящего из записей заданной длины.
Помогите решить, кому не сложно :)
Программа на C
3.Написать подпрограмму сортировки 2-мерного массива целых по строкам (использовать сумму значений строки), сохранив эти значения в главной диагонали массива.
Напишите в чем ошибка в предпоследней строчке! Если поставить вместо "а" "3" в предпоследней строке то работает, а так нет, как сделать?
#include<iostream>
using namespace std;
template<class T> T sum(T m, int n) {return m+n;}
template<class T> T sum(T* a, int size)
{
T s = 0;
for(int i=0; i<size; ++i)
s+=a[i];
return s;
}
int main()
{
cout<<sum(1,2)<<endl;
int a[]={1,2,3};
cout<<sum(3,3)<<endl;
return 0;
}
помогите плс
задали вот такое задание в Делфи: написать программу расчитывающаю количество дней,часов,минут,секунд между двумя датами, заданными в формате например 12.01.2009 14:37:59 и системной датой, временем... расчёт должен вестись по всем правилам, с учётом високосных годов....
и если можно плиз с пояснениями.....
2 Тилль
У меня на Microsoft Visual Studio 2008 всё работает
ниодной ошибки не выдаёт
Visual Studio.... это же мутант.... Стандарты? Да он ест их на завтрак, обед и ужин.
Так что о правильности написания кода нельзя судить по словам этого демона :)
Напишите в чем ошибка в предпоследней строчке! Если поставить вместо "а" "3" в предпоследней строке то работает, а так нет, как сделать?
#include<iostream>
using namespace std;
template<class T> T sum(T m, int n) {return m+n;}
template<class T> T sum(T* a, int size)
{
T s = 0;
for(int i=0; i<size; ++i)
s+=a[i];
return s;
}
int main()
{
cout<<sum(1,2)<<endl;
int a[]={1,2,3};
cout<<sum(3,3)<<endl;
return 0;
}
Ты передал литерал вместо указателя в первом параметре в обоих случаях использования функции sum.
Не совсем понял вопрос. Функция ждет от тебя указатель, зачем тебе передавать ей тройку, вместо него? Какую из двух перегруженных функций ты хотел использовать?
Программа будет работать в обоих случаях, потому что подставляется перегруженная функция, которая удовлетворяет переданным параметрам (их типам)
Помогите, пожалуйста, разработать программу нахождения значения определенного интеграла методом Симпсона (на паскале).
Вот, собственно, функция для интегрирования:
y=log3(внизу)х (х+х^2)^-1 .
Исходные данные: интервал интегрирования, количество разбиений отрезка.
Результат нужно получить такой: значение интеграла, график заданной функции.
Решение интерпретировать графически (автоматическое масштабирование, название графика, метки на осях и обозначение осей).
Также нужно предусмотреть переключение между графическим и текстовым окнами для ввода исходной информации и вывода результатов интегрирования и графической интерпретации. И предусмотреть проверку корректности данных.
Код на дельфи уже есть:
A, B - интервал интегрирования
N - число точек на интервале
Func - функция, от которой берется интеграл.
Возвращаемое значение - значение интеграла
type
TFunction = function(X: Extended; Arg: Pointer): Extended;
function Simpson(A, B: Extended; N: Cardinal; Func: TFunction; Arg: Pointer):
Extended;
var
h: Extended;
X: Extended;
K: Extended;
I: Integer;
begin
Assert(N > 0);
h := 0.5 * (B - A) / N;
Result := Func(A, Arg);
X := A + h;
for I := 1 to 2 * N - 1 do
begin
if I mod 2 = 0 then
K := 2
else
K := 4;
Result := Result + K * Func(X, Arg);
X := X + h;
end;
Result := Result + Func(B, Arg);
Result := h * Result / 3;
end;
Но нужно его как-нибудь переделать в код Паскаля.
Плиз помогите)
playhard.g0pr0
12.05.2009, 20:18
парни помогите решить уравнение
http://filetransfer.jimm.org/download.php?file=7e1e25b35cf1c19a
мм.. привет всем.. начали изучать делфи. столкнулся с первой проблемой.. препод сказал нестандартная задача.. как не пробовал не получается.. не совсем понимаю именно сути задачи.. если можно помогите решить.. и будет супер если будет пара комментов.. вот собственно сама задача
Задачка по Делфи.
Суммирование рядов.
для заданного положительного Е и заданного х выччслить сумму ряда с точностью Значение параметра m, входящего в некоторые варианты, вводится с клавнатуры. Суммирование ряда завершается, если модуль очередного слагаемого меньше Е. Значение суммы сравнить с соответствующим значением в левой части равенства. действительные типы объявить ехtended. Предусмотреть ограничение количества слагаемых ряда для предотвращения <зацикливанию> программы.
(1-x)^(-m)=1+m*x+[m*(m+1)/2!]*x^2+[m*(m+1)(m+2)/3!]*x^3+.... |x|<1; m>0
Всем привет, уже целый день бьюсь с задачей Проверить соответствие слов begin, end, case end, record в операторах программы Pascal учесть что в строке может быть несколько слов, повторений. Программа на тему динамические структуры данных Заранее спасибо
PS Сори!!! не указал язык в которм выполнить надо" надо сделать на Pascal
(1-x)^(-m)=1+m*x+[m*(m+1)/2!]*x^2+[m*(m+1)(m+2)/3!]*x^3+.... |x|<1; m>0
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils, Math;
var
x, e: Extended;
m: Integer;
maxCount: Integer;
a, sum: Extended;
i: Integer;
begin
//вводим начальные данные
Write('Enter x:');
repeat
Readln(x);
until abs(x)<1;
Write('Enter m:');
repeat
Readln(m);
until m>0;
Write('Enter e:');
repeat
Readln(e);
until e>0;
//считаем сумму ряда
maxCount := 100;
sum := 1;
a := 1;
for i:=1 to maxCount do
begin
a := a*(m+i-1)*x/i;
sum := sum + a;
if (abs(a)<e) then
break;
end;
//пишем результат
WriteLn('Result :' + floatToStr(sum));
WriteLn('True value :' + floatToStr(Power(1-x, -m)));
Readln;
end.
Всем привет, уже целый день бьюсь с задачей Проверить соответствие слов begin, end, case end, record в операторах программы Pascal учесть что в строке может быть несколько слов, повторений. Программа на тему динамические структуры данных Заранее спасибо
Программа-то на каком языке должна быть?
Может кто-нить помочь три задачки решить?
1. Дан массив из N элементов. Каждый элемент равен 0, 1 или 2; нужно переставить элементы так, чтобы сначала располагались все нули, затем все единицы, а после них - двойки
2. Найти количество элементов в массиве, больших среднего арифметического всех элементов массива.
3.Задан массив из N элементов. Определить максимальный элемент.
Заранее спасибо
Может кто-нить помочь три задачки решить?
1. Дан массив из N элементов. Каждый элемент равен 0, 1 или 2; нужно переставить элементы так, чтобы сначала располагались все нули, затем все единицы, а после них - двойки
2. Найти количество элементов в массиве, больших среднего арифметического всех элементов массива.
3.Задан массив из N элементов. Определить максимальный элемент.
Заранее спасибо
на каком языке то????
еси С++ то первая задача готовая
#include<iostream>
using namespace std;
void swap(int *p1, int *p2);
int main()
{
int p[10];
int i;
for (i=0;i<10;i++){
cout << "Enter array's element #"<<i+1<<"\n";
cin >> p[i];
if(p[i]<0 || p[i]>2)
{ cout << "Error\n";
break;
}
}
for(i=0;i<10;i++)
{
for (int j=0;j<9;j++)
{
if (p[j]>p[j+1])
swap (&p[j], &p[j+1]);
}
}
for (i=0;i<10;i++)
cout << p[i]<<" ";
return 0;
}
void swap(int *p1, int *p2)
{
int temp=*p1;
*p1=*p2;
*p2=temp;
}
я кароч токо начал учить не знаю как сделать что бы если елемент масива больше 2 или меньше 0 выйти в конец программы?
dirty_stuFF
14.05.2009, 14:08
Ребят нужна помощ знатаков асма -.-
Нужно написать процедуры для ввода с клавиатуры, аналоги подпрограмм ввода/вывода с Паскаля Read(ln) Write(ln)
Ребят нужна помощ знатаков асма -.-
Нужно написать процедуры для ввода с клавиатуры, аналоги подпрограмм ввода/вывода с Паскаля Read(ln) Write(ln)
когда то писал ввиде макросов, вот держи:
puts MACRO src ; print string to STDOUT
IFB <src>
display "Use macro: puts <string>"
EXITM
ELSE
push ax
push dx
lea dx,src
mov ah,09h
int 21h
pop dx
pop ax
ENDIF
ENDM
gets MACRO dst ; read string from STDIN
local _read, _done
IFB <dst>
display "Use macro: gets <dst>"
EXITM
ELSE
push ax
push bx
lea bx, dst
_read:
getc
cmp al, 13
je _done
mov [bx], al
inc bx
jmp _read
_done:
putc 0Ah
pop bx
pop ax
ENDIF
ENDM
люди, можете помочь решить задачу двуэтапным симплекс методом в С++:
max f = 315х1 + 278х2 +573х3 + 370х4
ограничения:
350x1 + 620x3 ≤ 64100;
40x1 + 30x2 + 20x3 + 20x4 ≤ 4800;
30x1 + 40x2 + 30x3 + 30x4 ≤ 55200;
86x1 + 110x2 + 150x3 + 52x4 ≤ 22300;
160x1 + 92x2 + 158x3 + 128x4 ≤ 26240;
501x4 ≤ 800;
158x2 + 30x3 + 50x4 ≤ 7910;
4.5x1 + 4.5x2 + 4.5x3 + 4.5x4 ≤ 720;
x2 ≥ 40;
x3 ≤ 120;
x1, x2, x3, x4 ≥ 0;
Помогите вот с такой задачей в C++ B.
есть Ansi строка из 7-ми символов. То есть 7 байт.
Надо сделать её длинной в 8 байт, вставив в исходную строку нулевой бит через каждые 7 бит.
Сообщение от Fo)(a
Всем привет, уже целый день бьюсь с задачей Проверить соответствие слов begin, end, case end, record в операторах программы Pascal учесть что в строке может быть несколько слов, повторений. Программа на тему динамические структуры данных Заранее спасибо
Программа-то на каком языке должна быть?
Pascal
Всем привет, уже целый день бьюсь с задачей Проверить соответствие слов begin, end, case end, record в операторах программы Pascal учесть что в строке может быть несколько слов, повторений. Программа на тему динамические структуры данных Заранее спасибо
PS Сори!!! не указал язык в которм выполнить надо" надо сделать на Pascal
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
source: string;
lexem: string;
c : char;
i:Integer;
stack: array[0..100] of string;
stackPointer: integer;
procedure PushLexem(lexem: string);
begin
if lexem = 'end' then
begin
//найден конец блока, выталкиваем из стека
if stackPointer = 0 then
Writeln('Error: Found "end", but not found "begin", "case" or "record"')
else
dec(stackPointer)
end
else
if (lexem='begin') or (lexem='case') or (lexem='record') then
begin
if(stackPointer>=Length(stack)) then
Writeln('Error: Stack overflow');//переполнение стека - слишком много вложенных блоков в исходном тексте
//кладем лексему в стек
stack[stackPointer] := lexem;
inc(stackPointer);
end
end;
begin
//ввод проверяемого кода
Writeln('Enter Pascal source: ');
Readln(source);
//переводим в нижний регистр, добавляем пробел в конце
source := LowerCase(source)+' ';
//перебираем символы, ищем лексемы
lexem := '';
for i:=1 to Length(source) do
begin
c := source[i];
if c in ['a'..'z','0'..'9','_'] then
//читаем лексему
lexem := lexem + c
else
if lexem<>'' then
begin
//прочитана лексема, кладем в стек
PushLexem(lexem);
lexem := '';
end
end;
//проверяем сотсояние стека, он должен быть пуст
if stackPointer > 0 then
Writeln('Error: Found "'+stack[stackPointer-1]+'", but not found "end"');
Writeln('Analysis completed');
Readln;
end.
2Algol
поч. тебе репы добавить низя?
2Algol
поч. тебе репы добавить низя?
Карма такая :cool:
Карма такая :cool: А зря :) "Назвался юзером - получай в репу"
Привет!
В общем такое задание:
Нужно написать программу, которая имитирует начальный вид банкомата о.О
писать надо на Visual Basic
Собстна что означает "имитирует начальный вид банкомата"??
И как это реализовать?
Спасибо!
Нужно написать 4 програмки на c#(1 курс). Оплата договорная, писать icq 7два9756
прилагается ксерокопия методички
~NeiTRoN~
16.05.2009, 20:10
Народ помогите кто может пожалуйста!!!!
Нужно написать прогу, которая по матрице смежности графа находит две вершины и путь до них который проходит через все ребра графа.
собственно мессага
нужно построить график функции x*x*x*x-13*x*x+36 в заданом интервале(вводится с клавиатуры
//PASCAL
Что не правильно, не работает программа..помогите исправить ошибки
unit fazenda_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit; // расстояние
Edit2: TEdit; // цена литра бензина
Edit3: TEdit; // потребление бензина на 100 км
CheckBox1: TCheckBox; // True - поездка туда и обратно
Button1: TButton; // кнопка Вычислить
Label4: TLabel; // поле вывода результата расчета
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure EditKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
var
Edit: TEdit;
begin
Edit := Sender as TEdit;
// в поле Edit можно ввести только дробное число
case Key of
'0'..'9': ; // цифры
#8: ; // клавиша <Backspace>
'.',',': begin
Key := DecimalSeparator;
if Pos(DecimalSeparator,Edit.Text) <> 0
then Key := #0;
end;
#13: // клавиша <Enter>
case Edit.Tag of
1: // клавиша нажата в поле Edit1
Edit2.SetFocus; // фокус в поле Edit2
2: // клавиша нажата в поле Edit1
Edit3.SetFocus; // фокус в поле Edit3
3: // клавиша нажата в поле edit3
Button1.SetFocus; // фокус на кнопку Button1
end;
end;
end;
// щелчок на кнопке Вычислить
procedure TForm1.Button1Click(Sender: TObject);
var
rast : real; // расстояние
cena : real; // цена
potr : real; // потребление на 100 км
summ : real; // сумма
mes: string;
begin
// здесь возможно исключение типа EConvertError
// в случае, если пользователь отставит
// одно из полей ввода незаполненным
try
rast := StrToFloat(Edit1.Text);
cena := StrToFloat(Edit2.Text);
potr := StrToFloat(Edit3.Text);
except
on EConvertError do
begin
ShowMessage('Данные надо ввести во все поля!');
// попытаемся найти пустое поле
if Length(Edit1.Text) = 0
then Edit1.SetFocus
else if Length(Edit2.Text) = 0
then Edit2.SetFocus
else Edit3.SetFocus;
exit;
end;
end;
summ := (rast / 100) * potr * cena;
mes := 'Поездка на дачу';
if CheckBox1.Checked then
begin
summ := summ * 2;
mes := mes + ' и обратно';
end;
mes := mes + 'обойдется в ' + FloatToStrF(summ,ffGeneral,4,2)
+ ' руб.';
Label4.Caption := mes;
end;
end.
PreVarioS
17.05.2009, 22:26
Народ, а бейсик решаете?)
Народ, а бейсик решаете?)
Только в военное время :D
KaZ@NoVa
18.05.2009, 23:58
собственно мессага
нужно построить график функции x*x*x*x-13*x*x+36 в заданом интервале(вводится с клавиатуры
//PASCAL
. Посмотри тут, в принципе не сложно:( зделай сам) http://books.kulichki.com/data/pascal/pas1/6_2_5.htm
Staratel
19.05.2009, 00:58
"Народ, а бейсик решаете?)"
Могу помочь
Flame of Soul
19.05.2009, 06:12
для MRAK9
Проверить всю правильность кода возможности нету так как моя видиокарта почему-то не хочет работать с GRAPH в режиме совместимости. Можно конечно было сделать и через VGA256, но так уж принято чертить графики через GRAPH.
y:=x*x*x*x-13*x*x+36; - оставила так как есть, ибо не хочется заморачиваться на преоброзовании и округлении типов. Если будет необходимость работать с real и считать степени по человечески то вот формула y:=exp(ln(X) *4)-13*Sqr(x)+36;
Исходный код:
program kl;
uses Graph;
var dv,mv,i,x,y,ta,tb: integer;
begin
write('vvedite pervoe znachenie diaposona: ');
read(ta);
write('vvedite vtoroe znachenie diaposona: ');
read(tb);
DV:=Detect;
InitGraph(DV,MV,'C:\TP7\UNITS\GRAPH');
for i:=ta to tb do
begin
x:=i;
y:=x*x*x*x-13*x*x+36;
LineTo(x,y);
end;
read(x);
ClozeGraph;
end.
Если кажется что линиями слишком грубо, то можете сделать через точки, только не забывайте преобразовывать типы:
x:=ta;
While x<=tb do
begin
y:=exp(ln(X) *4)-13*Sqr(x)+36;
...
...
PutPixel(x, y, 15);
x:=x+ 0.01;
end;
Процедуры и функции модуля CRAPH
Процедуры.
* Arc (X,Y:Integer; U1, U2, R:Word)
Строит дугу окружности текущим цветом с текущими параметрами линии. X, Y – координаты центра дуги; U1 – угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной с лева на право; U2 – угол до конечной точки дуги, отсчитываемый так же, как U1; R – радиус дуги.
* Bar (X1, Y1, X2, Y2:Integer)
Строит прямоугольник, закрашенный текущим цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего углов прямоугольника.
* Bar3D (X1, Y1, X2, Y2:Integer; Glubina: Word; Top:Boolean)
Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего углов передней грани; Glubina – ширина боковой грани (отсчитывается по горизонтали); Top – признак включения верхней грани (если True – верхняя грань вычерчивается, False – не вычерчивается).
* Circle (X, Y: Integer; R: word)
Рисует текущим цветом окружность радиуса R с центром в точке (X, Y).
* ClearDevice
Очищает графический экран, закрашивает его в цвет фона.
* ClearViewPort
Очищает выделенное графическое окно, закрашивает его в цвет фона.
* CloseGraph
Закрытие видеорежима. Когда все запланированные графические работы выполнены, необходимо выйти из графического режима. Это делается с помощью не имеющей параметров процедуры ClozeGraph. В процессе выполнения эта процедура освобождает память, распределенную под драйверы графики, файлы шрифтов и промежуточные данные, и восстанавливает режим работы адаптера в то состояние, в котором он находился до выполнения инициализации системы.
* Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)
Рисует дугу эллипса текущим цветом. X, Y – координаты центра эллипса; U1, U2 – углы до начальной и конечной точек дуги эллипса (см. процедуру Arc); XR, XY – горизонтальная и вертикальная полуоси эллипса.
* Fill Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)
Рисунт заштрихованный эллипс, используя X, Y как центр и XR, YR как горизонтальную и вертикальную полуоси эллипса.
* FillPoly (N: Word; Var PolyPoints)
Рисует и штрихует многоугольник, содержащий N вершин с координатами в поле PolyPoints.
* InitGraph (Var Driver, Mode:Integer; Path: String)
InitGraph(DV,MV,'C:\TP7\UNITS\GRAPH'); Организует переход в графический режим. Переменные Driver и Mode содержат тип графического драйвера и его режим работы. Третий параметр определяет маршрут поиска графического драйвера. Если строка пустая (т.е. равна ’’), считается, что драйвер находится в текущем каталоге. Смотрите у Вас где находится файл GRAPH.TPU
* Line (X1, Y1, X2, Y2:Integer)
Рисует линию от точки X1, Y1, до точки X2, Y2.
* LineTo (X,Y:Integer)
Рисует линию от текущего указателя к точке X, Y.
* MoveTo (X,Y:Integer)
Смещает текущий указатель к точке X, Y.
* OutTextXY (X,Y:Integer; TextString: String)
Выводит текст в заданное место экрана.
* PieSlice (X,Y:Integer; U1, U2, Radius: Word)
Строит сектор круга, закрашенный текущей штриховкой и цветом заполнения. X, Y – координаты центра сектора круга; U1 и U2 – начальный и конечный углы сектора, отсчитываемые против часовой стрелки от горизонтальной оси, направленной в право; Radius – радиус сектора.
* PutPixel (X,Y:Integer; Color: Word)
Выводит точку цветом Color с координатами X, Y.
* Rectangle (X1, Y1, X2, Y2)
Рисует контур прямоугольника, используя текущий цвет и тип линий. X1, Y1 – координаты левого верхнего угла прямоугольника; X2, Y2 - координаты левого правого нижнего угла прямоугольника.
* Sector (X, Y: Integer; U1, U2, XR, YR: Word)
Рисует и штрихует сектор эллипса радиусом XR, YR с центром в X, Y от начального угла U1 к конечному углу U2.
* SetBkColor (Color: Word)
Устанавливает цвет фона.
* SetColor (Color: Word)
Устанавливает основной цвет рисования.
* SetFillStyle (Pattern, Color: Word)
Устанавливает образец штриховки и цвета.
* SetLineStyle (LineStyle, Pattern, Thickness: Word)
Устанавливает толщину и цвет линии.
* SetTextStyle (Font, Direction, CharSize: Word)
Устанавливает текущий шрифт, направление (горизонтальное или вертикальное) и размер текста.
* SetViewPort (X1, Y1, X2, Y2:Integer; ClipOn: Boolean)
Устанавливает прямоугольное окно на графическом экране. Параметр ClipOn определяет “отсечку” элементов изображения, не умещающихся в окне.
Функции.
GetMaxX и GetMaxY
Возвращает значения максимальных координат экрана в текущем режиме работы соответственно по горизонталь и вертикали.
* GraphResult
Возвращает значение GrOk, соответствующее коду 0, если все графические операции программы выполнились без ошибок, или возвращает числовой код ошибки (от -1 до -14).
народ помогите плиз на V Basic решить задачу, есди можно то исходники в ПМ на ссылку скачивания скиньте плиз, очень буду благодарен
y=1!+2!+3!+...+n! (n>1); до n=10
Народ....Блиет по программированни...задачу на С++ сделал а вот с Ассемблером больште проблемы...
Прошу помочь в написаниие надо сделать на ассемблере
Задача:
Ввести в строку символьных данных,задавая буфер равный 15 словам.Заменить в этой строке нечетные символы на символ "J".Выдать полученную строку символов.
Пжлст....нужно оячень скоро
Заранее благодарен!
Доброго времени суток!
Необходимо написать(C#) простенький менеджер горячих клавиш(запуск файла, открытие текстового документа итд).
Есть заготовка - как отлавливать сами нажатия. Нужно дописать их обработку и проверку.
http://webfile.ru/3626453
Заранее спасибо!
Нужен код с++ для вычисления 100 Простыч чисел с индексами от 10 миллионов (10 000 000) до 1 миллиард (1 000 000 000).
т.е. как пример: простые числа: 2, 3, 5, 7, 11, 13, 17
Число 11 имеет индекс - 5
Гугл дал код:
/*
-: Copyright © 1999-2003 AY-programs. All Rights Reserved. :-
E-mail: ay@supermail.ru
-------------------------------------------------------------------------------------
Programma poiska prostih chisel.
Po-umolchaniu programma poluchaet dannie iz "input.txt": chislo, do kotorogo
nujno nayti vse prostie chisla. Resultat vivodit v "output.txt". Kluchem -l programma
nachnet rabotat' v rejime polnogo razbora(s klaviaturi poluchaet imena vhodnogo i
vihodnogo fila, po okonchanii raboti vivodit ih na ekran). Cherez komandnuu stroku
ona mojet poluchat' imena vhodnogo i vihodnogo fila.
-------------------------------------------------------------------------------------
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define STR_FILE_IN_NAME "input.txt"
#define STR_FILE_OUT_NAME "output.txt"
int MkOutFile(FILE *f_in, FILE *f_out);
bool bAll=false;
int main(int argc, char* argv[])
{
char sFInName[256]=STR_FILE_IN_NAME, sFOutName[256]=STR_FILE_OUT_NAME, *pNothingDo;
FILE *f_in, *f_out;
char cRead;
if(argc>1){
if((argv[1][0]=='-')&&(argv[1][1]=='l')&&(argv[1][2]=='\0')){
bAll=true;
} else {
pNothingDo=strcpy(sFInName,argv[1]);
if(argc>2) pNothingDo=strcpy(sFOutName,argv[2]);
}
}
//----------------begin all---
if(bAll){
printf("Input name of Input File:");
scanf("%s",sFInName);
printf("Input name of Output File:");
scanf("%s",sFOutName);
}
//----------------end all-----
f_in=fopen(sFInName,"r");
f_out=fopen(sFOutName,"w");
if (!f_in){
printf("Error: can't open file with name %s\n", sFInName);
if(bAll) scanf("%c", &cRead);
return -1;
}
if (!f_out){
printf("Error: can't open file with name %s\n", sFOutName);
if(bAll) scanf("%c", &cRead);
return -1;
}
if(MkOutFile(f_in, f_out)>=0){
printf("Program was finished successfully!\n");
} else {
printf("Program was finished unsuccessfully!\n");
}
fclose(f_in);
fclose(f_out);
//----------------begin all---
if(bAll){
double dRead;
f_in=fopen(sFInName,"r");
f_out=fopen(sFOutName,"r");
printf("Input File:\n");
while(fscanf(f_in, "%lg", &dRead)==1){
printf("%lg ",dRead);
}
printf("\n");
printf("Output File:\n");
while(fscanf(f_out, "%lg", &dRead)==1){
printf("%lg ",dRead);
}
printf("\n");
fclose(f_in);
fclose(f_out);
}
if(bAll) scanf("%c", &cRead);
//----------------end all-----
return 0;
}
int MkOutFile(FILE *f_in, FILE *f_out) //osnovnaya funktsiya
{
long int iSimple;
if(fscanf(f_in, "%ld", &iSimple)!=1) return -1;
if(iSimple<=1) return 1;
if (iSimple==2) {
fprintf(f_out,"%d\n",2);
return 1;
}
if (iSimple==3) {
fprintf(f_out,"%ld\n",2);
fprintf(f_out,"%ld\n",3);
return 1;
}
long int *aiSimples = new long int[(iSimple/2)+1];
if(!aiSimples) return -2;
long int iNOS = 2;
long int iCandidat;
aiSimples[0]=2;
aiSimples[1]=3;
fprintf(f_out,"%ld\n%ld\n",2,3);
iCandidat=3;
iCandidat+=2;
while(iCandidat<=iSimple){
long int iNSravn = 1;
bool bYes = true;
while((aiSimples[iNSravn]*aiSimples[iNSravn])<=iCandidat){
if(!(iCandidat%aiSimples[iNSravn])){
bYes=false;
break;
}
iNSravn++;
}
if(bYes){
iNOS++;
aiSimples[iNOS-1]=iCandidat;
fprintf(f_out,"%ld\n",aiSimples[iNOS-1]);
}
iCandidat+=2;
}
delete [] aiSimples;
return 1;
}
/*
-: Copyright © 1999-2003 AY-programs. All Rights Reserved. :-
E-mail: ay@supermail.ru
*/
Программа выдает последнее число - 1 010 065 393
У этого числа индекс немного выше 50 000 000
вычисленные значения:
10 000 000 179,424,673
20 000 000 373,587,883
30 000 000 573,259,391
40 000 000 776,531,401
50 000 000 982,451,653
Народ помогите решить немного задач на паскале, моет я и о многом прошу, но думаю для большинства это не составит труда, если можно то побыстрее, в пятницу надо уже сдать. Задачи не сложные.
Вот условия:
1. Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а.
2. 1. Расстояние между двумя словами равной длины – это количество позиций, в которых различаются эти слова. В заданном предложении найти пару слов заданной длины с максимальным расстоянием.
3. Дан текстовый файл с расширением inp, в котором каждая строка содержит последовательность действительных чисел. Выяснить, будут ли последовательности возрастающие. Результат анализа (Да или Нет) записать в выходной файл с расширением out (построчно).
4. В данной действительной квадратной матрице порядка n отсортировать строку, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственен. Во входном файле с расширением mas, в первой строке дан размер матрицы n, а в следующих n строках и n столбцах записаны элементы матрицы. Результат выполнения программы вывести на экран.
5. Создать типизированный файл Task5.txt с возможностью добавления, содержащий сведения о веществах: название вещества (текст(10), его удельный вес (действительное) и проводимость (проводник, полупроводник, изолятор) (текст[13]). Необходимо создать отчет (использовать подпрограммы):
a) выписать удельные веса и названия всех полупроводников и вывести на экран с заголовком "Полупроводники";
b) выбрать данные о проводниках с удельным весом не более 10 и вывести на экран после информации о полупроводниках, вставив заголовок "Проводники";
c) вывести все содержимое типизированного файла в текстовый файл Task5.sol.
Пример входного файла Task5.txt:
Фарфор 2.3 изолятор
Железо 7.9 проводник
Золото 19.3 проводник
Кремний 2.3 полупроводник
Железо 7.9 проводник
Стекло 2.5 изолятор
043nKRuT0y
20.05.2009, 19:03
Есть задачка :
С клавиатуры вводится число - сумма денег n>7 !!! Нужно узнать можно ли выплатить эту суму купюрами по 5 и по 3 ??? Хотя если подумать то любую сумму можна выдать этими купюрами ! Все таки хотелось бы удивить толковое и короткое кишение на С++
Заранее СПС !
C++ (Консольки)
1. http://s40.radikal.ru/i087/0905/69/223193cae726t.jpg (http://radikal.ru/F/s40.radikal.ru/i087/0905/69/223193cae726.jpg.html)
2. Логика в итоге должно получится либо тру либо фолс (Значок вниз=OR,^=AND,закорючка посередине=NOT)
http://i048.radikal.ru/0905/a2/b0fd07a36320t.jpg (http://radikal.ru/F/i048.radikal.ru/0905/a2/b0fd07a36320.jpg.html)
rubik-nerubik
20.05.2009, 20:33
1)
написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до9 на слова "ноль", "один", .. "девять", начиная каждое предложение с новой строки.
В интернете есть такая уже, но мне надо на Borland C++ 3.1 а не 6.0 препод будет в шоке если она будет в 6 и с кучей непонятных переменных и прочее.. вот. выручайте, нужно очень срочно.
ВЗАМЕН СЕМИЗНАК
Помогите исправить ошибки, программа компилируется, но зависает.
Задан массив. Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых меняется знак.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int a[100];
int max;
int k;
int b[100];
int n;
int i;
cout<<"\nenter the size of array:";cin>>max;
for (i=0;i<max;i++)
{
printf("Please enter the %i element of the array:\n",i);
scanf("%i",&a[i]);
}
if (a[0]>=0)
for(i=1;i=(n-1);i++)
if (a[i]<0)
if (a[i-1]>=0)
{
k=k+1;
b[k]=i;
}
else if (a[i]>=0)
if (a[i-1]<0)
{
k=k+1;
b[k]=i;
}
else if (a[0]<0)
for(i=1;n-1;i++)
if (a[i]>=0)
if (a[i-1]<0)
{
k=k+1;
b[k]=i;
}
else
if (a[i]<0)
if (a[i-1]>=0)
{
k=k+1;
b[k]=i;
}
for(i=0;i<k;i++)
printf("%d", b[i]);
getch();
}
C++ (Консольки)
1. http://s40.radikal.ru/i087/0905/69/223193cae726t.jpg (http://radikal.ru/F/s40.radikal.ru/i087/0905/69/223193cae726.jpg.html)
2. Логика в итоге должно получится либо тру либо фолс (Значок вниз=OR,^=AND,закорючка посередине=NOT)
http://i048.radikal.ru/0905/a2/b0fd07a36320t.jpg (http://radikal.ru/F/i048.radikal.ru/0905/a2/b0fd07a36320.jpg.html)
Вот держи:
1)
# include <iostream.h>
# include <math.h>
int main()
{
double y = 0;
double a = 1.3;
double A = -4.6;
double b = pow (A,2) + pow (a,2);
y = pow( (atan (a/b) + a/2 * log10 (b)), 2) +
( pow(sin(b),3) + 7.6 ) /
( 2.3 * pow(10,5) + 2 * pow(a,2) + sqrt(b / fabs(A)) ) + A
;
cout << "=================================\n" << "y = " << y << "\n=================================\n" ;
return 0;
}
2)
# include <iostream.h>
# include <math.h>
int main()
{
bool Z = false;
int x = 7;
int y = -8;
bool a = true;
bool b= false;
Z = fabs(x + pow(y,2)) > 18 || x < 8*y && ! (a || sqrt( fabs(y)) + 2 == 26) || b;
if (Z == 0)
cout << "=================================\n" << "Z = FALSE" << "\n=================================\n" ;
else
cout << "=================================\n" << "Z = TRUE " << "\n=================================\n" ;
return 0;
}
Помогите исправить ошибки, программа компилируется, но зависает.
Задан массив. Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых меняется знак.
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int a[100];
int max;
int k;
int b[100];
int n;
int i;
cout<<"\nenter the size of array:";cin>>max;
for (i=0;i<max;i++)
{
printf("Please enter the %i element of the array:\n",i);
scanf("%i",&a[i]);
}
if (a[0]>=0)
for(i=1;i=(n-1);i++)
if (a[i]<0)
if (a[i-1]>=0)
{
k=k+1;
b[k]=i;
}
else if (a[i]>=0)
if (a[i-1]<0)
{
k=k+1;
b[k]=i;
}
else if (a[0]<0)
for(i=1;n-1;i++)
if (a[i]>=0)
if (a[i-1]<0)
{
k=k+1;
b[k]=i;
}
else
if (a[i]<0)
if (a[i-1]>=0)
{
k=k+1;
b[k]=i;
}
for(i=0;i<k;i++)
printf("%d", b[i]);
getch();
}
Ошибки:
1)при создании цикла, как следствие входим в вечный цикл
2) нехватка фигурных скобок
3) лишний цикл и переменная.
Вот рабочий код:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int a[100];
int max;
int k = 0;
int b[100];
int i;
cout<<"\nenter the size of array: ";
cin>>max;
for (i=0;i<max;i++)
{
printf("Please enter the %i element of the array:",i+1);
scanf("%i",&a[i]);
}
for(i=1;i<max;i++)
{
if (a[i]<0)
{
if (a[i-1]>=0)
{
b[k]=i;
k=k+1;
}
}
else
if (a[i-1]<0)
{
b[k]=i;
k=k+1;
}
}
printf("\n\n3HaK MeH9ETC9 %d Pa3\nIHDEKCbI:", k);
for(i=0;i<k;i++)
printf(" %d; ", b[i]);
getch();
return 0;
}
Есть задачка :
С клавиатуры вводится число - сумма денег n>7 !!! Нужно узнать можно ли выплатить эту суму купюрами по 5 и по 3 ??? Хотя если подумать то любую сумму можна выдать этими купюрами ! Все таки хотелось бы удивить толковое и короткое кишение на С++
Заранее СПС !
Задачу решил.
Действительно ЛЮБУЮ СУММУ МОЖНО получить используя купюры 3 и 5 :
# include <iostream.h>
# include <math.h>
int main()
{
int x; // сумма денег
int i;
int j;
int z;
int y;
bool good;
cout << "\nVvedite Summu deneg -> "; // Введите сумму денег
cin >> x;
if (x > 7)
{
switch(x)
{
case 9:
z=0;y=9;good = true;break;
case 10:
z=10;y=0;good = true;break;
case 11:
z=5;y=6;good = true;break;
case 12:
z=0;y=12;good = true;break;
case 15:
z=15;y=0;good = true;break;
default:
for (i=0; i < x; i+=5) // шаг +5
{
for(j=0; j<x; j+=3) // шаг +3
{
if (i+j == x) {y = j; z = i; good = true;}
}
}
}
if (good == true)
{
cout << "\n\nViplatit mogno!\n"; // Выплатить можно!
cout << "\n\nNugno \"5\": " << z/5 << "\n\nNugno \"3\": " << y/3 << "\n\n"; // Нужно столькото "троек" и столькото "пятерок"
}
else
cout << "\n\nViplatit nelza!\n"; // Выплатить нельзя!
}
else
{
cout << "\n\nChislo dolgno bit > 7\n"; // число должно быть больше 7
}
return 0;
}
Тут код + ЕХЕ (http://debibi.narod.ru/RUBLI.rar)
Ошибки:
1)при создании цикла, как следствие входим в вечный цикл
2) нехватка фигурных скобок
3) лишний цикл и переменная.
Вот рабочий код:
Спасибо большое! :)
043nKRuT0y
22.05.2009, 16:11
1)
написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до9 на слова "ноль", "один", .. "девять", начиная каждое предложение с новой строки.
В интернете есть такая уже, но мне надо на Borland C++ 3.1 а не 6.0 препод будет в шоке если она будет в 6 и с кучей непонятных переменных и прочее.. вот. выручайте, нужно очень срочно.
ВЗАМЕН СЕМИЗНАК
Если еще нужно - вот наклепал :
# include <stdio.h>
# include <conio.h>
# include <iostream.h>
# include <string.h>
int main(void){
clrscr();
FILE *F;
char str[99];
char c;
F = fopen("C:\FILE.txt","r");
if(F == NULL){
cout<<"FILE read error !";
return 1;
}
while(!feof(F)){
fgets(str,100,F);
}
cout<<str;
for(int i = 0; i < strlen(str); i++){
c = str[i];
switch(c){
case '0' :
cout<<endl<<"zero"<<endl;
break;
case '1' :
cout<<endl<<"one"<<endl;
break;
case '2' :
cout<<endl<<"two"<<endl;
break;
case '3' :
cout<<endl<<"three"<<endl;
break;
case '4' :
cout<<endl<<"four"<<endl;
break;
case '5' :
cout<<endl<<"five"<<endl;
break;
case '6' :
cout<<endl<<"six"<<endl;
break;
case '7' :
cout<<endl<<"seven"<<endl;
break;
case '8' :
cout<<endl<<"eight"<<endl;
break;
case '9' :
cout<<endl<<"nine"<<endl;
break;
}
}
fclose(F);
getch();
return 0;
}
помоги пожалуйсто с лабораторной работой,вот задание:
1) Написать программу вычисления коэффициента конкордации ранжирования параметров для произвольного количества объектов, параметров и экспертов.
2) Выбрать предметную область изучения, объекты изучения и разработать список характеризуемых параметров. Произвести опрос 5 человек и получить:
• Ранжированную таблицу параметров (цифровой ранг от наименее значимый параметр до наиболее значимый).
• Таблицу экспертных оценок значений параметров.
• Коэффициент конкордации ранжирования параметров.
• Предпочтительный вариант для каждого из экспертов.
3) Привести не менее 3 тестов для различного количества экспертов и вариантов ранжирования.
4) Сделать выводы о влиянии на результаты экспертизы количественного и качественного состава экспертов.
есть готовая работа написанная на си шарпе,если можно то просто измените код программы,т.к. работу эту уже сдали и как бы чтобы не повторялось,нужно изменить код написания программы...вот сам листинг:
public partial class Form1 : Form
{ public List<string> ObjectName = new List<string>();
ObjectViewer ob;
int cnt_exp;
private float[,] values = null;
public Form1()
{ InitializeComponent();
}
private void btnAddObject_Click(object sender, EventArgs e)
{ if (tbxObjectName.Text == "")
return;
ObjectName.Add(tbxObjectName.Text);
if (comboBox1.Items.Count == 0)
{ comboBox1.Items.Add("выбрать все");
}
comboBox1.Items.Add(tbxObjectName.Text);
// MessageBox.Show("Объект добавлен");
tbxObjectName.Text = "";
}
private void btnSubjectListView_Click(object sender, EventArgs e)
{ ob = new ObjectViewer();
for (int i = 0; i < ObjectName.Count; i++)
{
Label l = new Label();
l.Parent = ob;
l.Location = new System.Drawing.Point( 1, 1+i*25);
l.Name = "lblObjectItem"+i.ToString();
l.Text = "объект";
TextBox tbx = new TextBox();
tbx.Parent = ob;
tbx.Location = new System.Drawing.Point(100, 1 + i * 25);
tbx.Name = "tbxObjectItem" + i.ToString();
tbx.Text = ObjectName[i];
}
ob.ShowDialog(); }
private void btnRnnTest_Click(object sender, EventArgs e)
{ if (dataGridView1.Rows.Count > 0)
{while (dataGridView1.Rows.Count>0)
{ dataGridView1.Rows.RemoveAt(0);
}
}
if (dataGridView1.Columns.Count > 2)
{while (dataGridView1.Columns.Count > 2)
{dataGridView1.Columns.RemoveAt(2);
}
}if (tbxSubjectName.Text == "")
{MessageBox.Show(this, "название предметной области не может быть пустым!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (ObjectName.Count == 0)
{MessageBox.Show(this, "Список объктов пуст, добавьте хотя бы один объект!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
} if (textBox1.Text == "")
{MessageBox.Show(this, "Введите число экспертов!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
} try
{
cnt_exp = int.Parse(textBox1.Text);
}
catch
{
MessageBox.Show(this, "Не корректно введено число экспертов!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
// добавляем столбцы
for (int i = 0; i<cnt_exp; i++)
dataGridView1.Columns.Add("user"+i.ToString(),"эксперт"+i.ToString());
for (int i = 0; i < ObjectName.Count; i++)
{
dataGridView1.Rows.Add(new string[] { ObjectName[i], (i+1).ToString()});
} dataGridView1.Enabled = true;
dataGridView1.Visible = true;
}
private void button1_Click(object sender, EventArgs e)
{
int index = comboBox1.SelectedIndex;
if (index < 0)
return;
if ( index == 0) // удаляем все
{
ObjectName.RemoveAll(EndsWithSaurus);
comboBox1.Items.Clear();
return;
}
ObjectName.RemoveAt(index-1);
comboBox1.Items.RemoveAt(index-1);
}
private static bool EndsWithSaurus(String s)
{
return true;
}
private float isSetVal(float value, int rows, int colums)
{
float val_count = 0;
for (int i=0; i<rows; i++)
{
if (values[i, colums] == value)
{
val_count++;
}
}
return val_count;
}
private void button2_Click(object sender, EventArgs e)
{
if (!dataGridView1.Visible)
return;
if (dataGridView1.Columns.Count > 2 + cnt_exp)
{
while (dataGridView1.Columns.Count > 2 + cnt_exp)
{
dataGridView1.Columns.RemoveAt(2 + cnt_exp);
}
}
values = new float[dataGridView1.Rows.Count, cnt_exp + 3];
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 2, c = 0; c < cnt_exp; j++, c++)
{
if (dataGridView1.Rows[i].Cells[j].Value == null)
{
MessageBox.Show(this, "не корректно введены данные!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
string buf = dataGridView1.Rows[i].Cells[j].Value.ToString();
if (buf == "")
{
MessageBox.Show(this, "не корректно введены данные!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
int val;
try
{
val = int.Parse(buf);
}
catch
{MessageBox.Show(this, "не корректно введены данные!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
} if (val < 1 || val > ObjectName.Count)
{ MessageBox.Show(this, "не корректно введены данные! Недопустимое значение", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
} values[i, c] = val;
}
}
// считаем сумму рангов для каждого эксперта
dataGridView1.Columns.Add("summ_rang", "Сумма рангов");
float rang_sum_all_expert = 0; // Оцениваем среднеарифметическое число рангов
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
float rang_sum = 0;
for (int j = 0; j < cnt_exp; j++)
{
rang_sum += values[i, j];
}
values[i, cnt_exp] = rang_sum;
dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 1].Value = (values[i, cnt_exp] as object);
rang_sum_all_expert += rang_sum;
}
float srednee_rang = rang_sum_all_expert / dataGridView1.Rows.Count; // Отклонение от среднего
dataGridView1.Columns.Add("rang", "Ранжировка");
dataGridView1.Columns.Add("otkl_sred", "Отклонение от среднего");
dataGridView1.Columns.Add("otkl_sred_kvadrat", "Квадрат отклонения");
float kvadrat_summ = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
values[i, cnt_exp + 1] = values[i, cnt_exp] - srednee_rang;
values[i, cnt_exp + 2] = values[i, cnt_exp + 1] * values[i, cnt_exp + 1];
kvadrat_summ += values[i, cnt_exp + 2];
dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 3].Value = ((float)values[i, cnt_exp] / (float)rang_sum_all_expert as object);
dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 2].Value = (values[i, cnt_exp + 1] as object);
dataGridView1.Rows[i].Cells[dataGridView1.Columns.Count - 1].Value = (values[i, cnt_exp + 2] as object);
}
//Определяем величину коэффициента конкордации:
float konkord_kof;
/*
* для определения связанных рангов
*/
List<float> val_list = new List<float>();
float T = 0;
for (int j = 0; j < cnt_exp; j++)
{
int group_count = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
float val_cnt = isSetVal(values[i, j], i, j);
if (val_cnt == 1)
{
group_count++;
val_list.Add(values[i, j]);
}
}
/// подчет Tj – показатель связных рангов
///
for (int t = 0; t < group_count; t++)
{
float h = isSetVal(val_list[t], dataGridView1.Rows.Count, j);
T += (h*h*h-h);
}
val_list.Clear();
}
if (T>0) // определяем есть ли связанные ранги
{
konkord_kof = 12 * (float)kvadrat_summ / ((float) cnt_exp * (float)cnt_exp * ((float)dataGridView1.Rows.Count * (float) dataGridView1.Rows.Count * (float) dataGridView1.Rows.Count - (float) dataGridView1.Rows.Count) - (float) cnt_exp * (float) T);
}
else
konkord_kof = 12 * (float) kvadrat_summ / ((float) cnt_exp * (float) cnt_exp * ( (float) dataGridView1.Rows.Count * (float) dataGridView1.Rows.Count * (float) dataGridView1.Rows.Count - (float) dataGridView1.Rows.Count));
textBox2.Text = konkord_kof.ToString(); } }
ViP-K1LLeR
22.05.2009, 20:15
Задали нам вот такую програмку.
Условие:
В текстовом файле D1.DAT записано 2520 вещественных чисел. Записать числа из этого файла в файл D2.DAT по N чисел в строке,рассортировав их предварительно в порядке возрастания в пределах одной строки. Число N задается пользователем (0<N<11)
Требования:
Программа должна содержать следующие подпрограммы:
Подпрограмма чтения данных из файлов.
Подпрограмма сортировки заданного фрагмента.
Подпрограмма записи данных в файл.
В тексте программы не должно быть меток. Подпрограммы не должны использовать глобальные переменные.
Начал писать, получилось это:
program сссс;
uses
crt;
type
arr1 = array[0..2519] of integer;
arr2 = array[0..10, 0..300] of integer;
procedure readfromfile(a: arr1);
var
f: text;
i, j: integer;
begin
assign(f, 'c:\d1.dat');
reset(f);
for i := 0 to 2519 do
begin
readln(f, j);
a[i] := j;
end;
end;
procedure entern(n: integer);
begin
write('vvedite n = ');
readln(n);
end;
procedure sorting(n: integer; a: arr1);
var
i, j, k, start, finish: integer;
begin
entern(n);
readfromfile(a);
for i := 0 to 2519 do
begin
if 2519 div n = 0 then
begin
start := i;
finish := start + n -1;
i := finish;
end;
for j := start to finish do
for k := finish downto start do
if a[j] < a[k] then
begin
a[j] := a[j] + a[k];
a[k] := a[j] - a[k];
a[j] := a[j] - a[k];
end;
end;
end;
procedure writetofile;
var
a: arr1;
f: text;
n, i: integer;
begin
sorting(n, a);
assign(f, 'c:\d2.dat');
rewrite(f);
for i := 0 to 2519 do
begin
if n = i then
writeln(f);
write(f, a[i]);
end;
end;
begin
clrscr;
writetofile;
readkey;
end.
Программа отказывается работать(
Подозреваю, что ошибся в процедуре сортировки.
Помогите plz. :)
Тема: Динамические структуры данных.Обработка деревьев.
Задание: Составить программу на языке СИ для построение и обработки дерева общего вида,содержащего узлы типа float. Основные функции с деревьями реализовать в виде универсальных процедур или функций.После того как дерево создано, его обработка должна производиться в режиме текстового меню со следующими действиями:
1) Добавление нового уза
2) Текстовая визуализация дерева(значение каждогог узла выводится в отдельной строке,с отступом, пропорциональным глубине узла, в порядке старшинства узлов.
3) Удаление узла
4)Вычисление значения некоторой функции,а именно определения числа листьев дерева.
PS:Извините что длинно,программировать не умею,поэтому не хотел упускать ни одной мелочи.
ankden гг, ппц у вас лабы, такое задание у нас на 3 часа практики
стукни 31247312 скину что есть
Все еще надеюсь на вашу помощь, в этом весьма непростом для меня деле.
termos.tif
24.05.2009, 13:16
Нужно решить задачи на Паскале, только не знаю где разместить топик. Кто может помоч? Вот условия задач -
1. Напишите программу решения следующих задац
а). найти сумму цифр заданного натурального числа
б). определить количество цифр заданного натур. числа.
2.Наисать программу проверки, является ли чётной первая цира заданного натур. числа.
3. Написать программу, которая среди всех двузначных чисел найдёт все числа, делящиеся на число, вводимое с клавиатуры.
4. Составить программу которая вводит некоторое целое числои, если но чётное, уменьшить его в 2 раза.
5. Ввести три числа. Если н одно из чисел не равно нулю, то вычислить их среднее арифметическое.
6. Сколько слагаемых должно быть в сумме 1+2+3+4..., чтобы эта сумма
равнялась 20
wildshaman
24.05.2009, 14:12
цена вопроса?
termos.tif
24.05.2009, 14:20
Задачи очень лёгкие, школьного уровня. Подумайте сами о цене :)
wildshaman
24.05.2009, 14:22
Задачи очень лёгкие, школьного уровня. Подумайте сами о цене :)
так что же ты сам тогда их не сделаешь, умник?
ПыСы, и да, задачи элементарные
termos.tif
24.05.2009, 14:26
Так я паскаль не помню совсем)
wildshaman
24.05.2009, 14:36
Задача номер 5:
program five;
var a,b,c:integer; s:real;
begin
writeln('Vvedite 4isla:');
readln(a,b,c);
if( (a <> 0) and (b <> 0) and (c <> 0)) then
begin
s:=(a+b+c)/3;
writeln('Srednee arimeti4eskoe: ',s:6:3);
end
else writeln('Odno iz 4isel ravno nulyu');
readln;
end.
задача номер 4:
program chetire;
var a:integer; b:real;
begin
writeln('Vvedite 4islo:');
readln(a);
if ((a mod 2)=0) then
begin
b:=a/2;
writeln('Rezultat: ', b:6:0);
end
else
writeln('chislo nechetnoe');
readln;
end.
задача номер 3:
program tri;
var a,i:integer; b:real;
begin
writeln('Vvedite 4islo:');
readln(a);
writeln('Chisla: ');
for i:=10 to 99 do
begin
if ((i mod a)=0) then
write(i, ', ');
end;
readln;
end.
Все работает
задача номер 6 не ясна - числа 1+2+3+4+5+6 никак не получат в сумме 20...
termos.tif
24.05.2009, 14:37
А остальные можно? 2 у.е. с меня. Только оплачу к вечеру ближе.
1(a).
program firsta;
var
i,b,n:integer;
begin
i:=0;
readln(n);
repeat
b:=n mod 10;
i:=i+b;
n:=n div 10;
until (n=0);
writeln(i);
readln;
end.
1(б).
program firstb;
var
b:integer;
s:string;
begin
readln(b);
Str(b,s);
writeln(length(s));
readln;
end.
2.
program second;
var
e,n:integer;
s:string;
begin
readln(n);
Str(n,s);
s:=s[1]+s[2];
Val(s,n,e);
if (n mod 2 = 0) then writeln('Y')
else writeln('N');
readln;
end.
termos.tif
24.05.2009, 15:35
Ещё бы шестую)
Она некорректна. Переформулируй условие
termos.tif
24.05.2009, 15:52
Я так понял:
Дано 4 слагаемых(1,2,3,4). Сколько нужно всех слагаемых, что бы сумма была равна 20. Но если задача не усложнится, то лучше сумма равна х.
Минимальное количество слагаемых? Все возможные варианты количества слагаемых? Варианты количества слагаемых, в которых используются все возможные слагаемые?
В представленном виде задача неоднозначна. Приведи условие, которое записано в учебнике или позвони однокласснику/одногруппнику, чтобы узнать его.
termos.tif
24.05.2009, 16:21
Это условие было с книги. Слогаемые - 1,2,3,4,5....
wildshaman
24.05.2009, 16:23
Это условие было с книги. Слогаемые - 1,2,3,4,5....
то есть, надо всеми способами из числе 1,2,3,4,5 сотавить 20?)
termos.tif
24.05.2009, 23:35
Нет) Последовательность) Прогрессия) х+1 1,2,3,4,5,6,7,8,9
043nKRuT0y
26.05.2009, 09:38
подскажите как можно найти целые А и В чтобы выполнялось уравнение N=3A+5B !
N - задается с клавиатуры !
подскажите как можно найти целые А и В чтобы выполнялось уравнение N=3A+5B !
N - задается с клавиатуры !
попробуй такой алгоритм:
N/3 = x
x*3 = A
N-A = y
y/5 = B
На каком языке нужна реализация?
ребят, очень нужно к четвергу сотворить программу на делфи.Скажите возможно ли это по таким срокам? и может кто то помоч в написании? курс горит(((((
программа поиска экстремумов функции одной перменной методом квадратичной интерполяции-экстраполяции
функции и элементы интерфейса программы:
1) заставка
2) контроль ввода данных
3) меню:
1.справочная система:
-постановка задачи с описанием метода решения
-инструкция по использованию программы (для пользователя и контрольный пример)
-о программе
2. контрольный пример-реализация
3.ввод новых данных в файл
4. чтение и выборка данных из этого файла
5. вывод результата в отдельном окне
6. графическая иллюстрация данных и т.д.
7 печать результатов
4) подключить часы, калькулятор или календарь
отчет должен содержать:
1. описание алгоритма решения задачи (в текстовом виде или виде блоксхемы)
2. описание диалога пользователя с программой
3. описание классов (объектов) проекта
4. исходные файлы проекта и необходимые файлы данных
5. исполняемые файлы проекта
подскажите как можно найти целые А и В чтобы выполнялось уравнение N=3A+5B !
N - задается с клавиатуры !
program diof;
var x,y,n:integer;
begin
readln(n);
if n>0 then begin
for x:=0 to n do
for y:=0 to n do
if 3*x+5*y=n then writeln (x,', ', y);
end
else begin
for x:=0 downto n do
for y:=0 downto n do
if 3*x+5*y=n then writeln (x,', ', y);
end;
writeln('<Enter>');
readln;
end.
Если нужно переделаю под Си/Си++
тут (http://e-maxx.ru/algo/diofant_2_equation)
Гипножаб
26.05.2009, 20:12
Помогите пожалуйста.На С++:
Написать программу работы с базой отдела кадров предприятия. База хранится в текстовом файле, его размер может быть произвольным. Каждая строка файла содержит запись об одном сотруднике. Формат записи: фамилия и инициалы (30 поз., фамилия должна начинаться с первой позиции), год рождения (5 поз.), ок¬лад (10 поз.).
Программа должна обеспечивать:
□ начальное формирование и дополнение базы данных о сотрудниках;
□ корректировку сведений о сотрудниках;
□ поиск сотрудника в базе по фамилии;
□ поиск самого молодого сотрудника;
Для представления базы в ОП использовать класс list, реализующий линейный двусвязный список.
Monstrillo
27.05.2009, 00:23
Мой товарищ меня опередил) Так же на С++
Написать программу «Англо-русский и русско-английский словарь».
«База данных» словаря содержит по одному варианту перевода слов и хранится в текстовом файле.
Программа должна обеспечивать выбор с помощью меню и выполнение одной из следующих функций:
Формирование «базы данных» словаря.
Выбор режима работы:
англо-русский;
русско-английский.
Вывод перевода заданного английского слова.
Вывод перевода заданного русского слова.
Базу данных словаря реализовать в виде класса vector.
Заранее спасибо.
знакомому нужно
в екселе ? 0_0
>> Miks (21:37:06 27/05/2009)
заходишь в эксель..нажимаешь Сервис..Макрос...Вижуал Бэйсик
-------------------------------------------------------
Задача 3 Составить программу для расчета суммы начисленных страховых взносов для работников 1967 года рождения и моложе за I, II и III месяц отчетного периода. на страховую часть
S= S1+ S2, где
S1 = V*10% - сумма начисленных страховых взносов на страховую часть пенсии
S2 = V * 4% - сумма начисленных страховых взносов на накопительную часть пенсии
V - база для начисления страховых взносов.
Результаты расчетов вывести в ячейки рабочего листа.
Помогите пжл с написанием данный лабуды ))
Нужна программа, использующая операции со структурами!
Задание:
Описать переменную "студент", содержащую: имя, фамилию, отчество, название учебного заведения, номер группы. Создать список студентов (N>10). Упорядочить список по алфавиту по возрастанию номеров групп.
Фирма XYZ по хранению и сбыту бытовых инструментов и приспособлений получает грузы с оборудованием по различным ценам. Фирма затем продает их с 20% надбавкой, причем товары полученные позднее продаются в первую очередь. Напишите программу считывающую записи о торговых операциях двух типов: операции по закупке и операции по продаже. Запись о продаже содержит префикс "S" и количество товара, а также стоимость данной партии. Запись о покупке содержит префикс "R", кол-во товара, стоимость одного изделия и общую стоимость всей партии.После считывания записи о покупке напечатайте ее. после считывания записи по продаже напечатайте ее и сообщение о цене, по которой были проданы изделия.
Например если фирмой были проданы 200 ед. оборудования в которые входили 50 ед с закупочной ценой 1.25 долл, 100 ед с 1.1 долл и 50 ед с 1долл то напечатется:
ФИРМА XYZ ПРОДАЛА 200 ИЗДЕЛИЙ
50 штук по 1.50 долл каждый на сумму: 75.00
100 штук по 1.32 долл каждый на сумму: 132.00
50 штук по 1.20 долл каждый на сумму: 60.00
ВСЕГО ПРОДАНО НА СУММУ: 267.00
если на складе данное изделие отсутсвует нужное кол-во то продайте имеющиеся а затем напечатайте
ОСТАЛЬНОЙ ЧАСТИ ИЗДЕЛИЯ ХХХ НЕТ НА СКЛАДЕ
з.ы. тока писать надо на паскале(ну или делфи в консольном режиме) а не на бейсике..
з.ы. бонусом сделавшему дам аську 6знаК(xyzab) )
Сегодня, 20:17
Забыл сказать - язык C/C++
Agregat, stream.ifolder.ru/12341557
Переделаешь под себя немного. Писал в редакторе, не компилил, поэтому возможны ошибки кое-где. Надеюсь поможет.
Пасс в ПМ
Использование структур.
Сформировать массив, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает изучать студент. Комбинированный тип содержит поля: фамилия студента, индекс группы, пять дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе - пробелом.
Написать программу, которая печатает список студентов, желающих прослушать дисциплину X. Если число желающих превышает 4 человека, то отобрать студентов, имеющих более высокий средний балл успеваемости.
Использование строк.
Дана строка слов, разделенных пробелами и запятыми. Подсчитайте количество подстрок (заключенных между запятыми) в строке. Определите длину самого короткого слова.
С++
Благодарю заранее.
1.
struct Student {
private :
string LastName;
int GroupNum;
int Point;
int Subj[5];
public :
/*
Student();
Геттеры и сеттеры
void SetLastName(string inLastName);
void SetGroupNum(int inGroupNum);
void SetPoint(int inPoint);
void SetSubj(int inSubj[5]);
string GetLastName(Student inStudent);
int GetGroupNum(Student inStudent);
int GetPoint(Student inStudent);
int GetSubj(Student inStudent);
void display(Student inStudent);
*/
};
/*
Student::Student() {
LastName = "";
GroupNum = 100;
Point = 0;
Subj[5] = {0, 0, 0, 0, 0};
}
*/
/* Отображение информации о студенте
void display(Student inStudent) {
cout << inStudent.GetLastName() << " " <<
inStudent.GetGroupNum() << endl;
}
*/
int main () {
// Получаем или заводим данные о студентах (массив структур) Student Students[N]
// Получаем дисциплину для выбора студентов (у нее есть номер, которому соответствует
// позиция в Subj[5]) пусть это номер p
// Заводим новый массив пустой массив студентов. Student StudentsOk[N]
// Для студентов с нужной нам дисциплиной.
int k = 0;
for (int i=0; N; i++) { // Где N - количество студентов
if (Students[i].GetSubj[p]())
StudentsOk[k] = Students[i];
if (k > 3) { // Если студентов больше 4, сортируем массив подходящих студентов
Student temp;
for (int j=0; N-1; j++) {
for (i=0;N-1;i++) {
if (StudentsOk[i].GetPoint()> StudentsOk[i+1].GetPoint()) {
temp = StudentsOk[i];
StudentsOk[i] = StudentsOk[i+1];
StudentsOk[i+1] = temp;
}}}
for (i=0; 4; i++)
StudentsOk[i].display();
}
// Если их меньше 4, выводим
else
for (i=0; k; i++)
StudentsOk[i].display();
2.
// Наша строка - Str
int p,min=0;
int k=0; // С его помощью посчитаем количесвто подстрок
int Min[strle(Str)]={0}; // С его - самое короткое слово
for (int i=0; strlen(Str); i++) {
if (s[i]!=',') {
if (s[i]!=' ')
Min[p]++;
else p++
}
else k++; }
for (i=0; p; i++)
if (Min[i]<min) min=Min[i];
// Осталось только рассмотреть крайнии случаи, когда запятые по краям
cout << "Количество подстрок: " << k+1 << endl;
cout << "Длина самого короткого слова: " << min;
Писал прям здесь, поэтому криво, но думаю, что главное идея, остальное сам добавишь.
ап хотя бы просто объясните как это проделать
Я конечнно понимаю, что задача именно в изучении формулы тейлора, но:
1. x87 FPU считает cos за одну комманду
2. Ассемблер не лучший язык для написания формулы тейлора.
да уж преподу это скажи моему :) дал такое задание нуна написать к понедельнику, сдам и у меня как раз будет балов чтобы не сдавать экзамен ))
megapr3v3d
30.05.2009, 07:13
Помогите составить блок-схемы для подпрограмм - Метод Дихотомия и Метод Трапеций
#define _USE_MATH_DEFINES
#include <cmath>
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
const double A = 0.7; //константы, даны по условию задачи
const double B = 0.3;
const double bm_step = 0.001; //шаг
double bm;
double F(double y) //подынтегральная функция
{
return sqrt(fabs(A*exp(-(y*y)) + B*exp(-(y/2)) - bm));
}
//
//
//Вычисление интеграла МЕТОДОМ ТРАПЕЦИЙ
//
//
//
double trap(double a, double b, int N)
{
double h = (b - a)/N;
double tmpA, tmpB;
double s;
tmpA = a;
tmpB = a + h;
s = 0; //обнуляем площадь, для того что бы потом просуммировать
for (int i = 0; i < N; i++) //цикл
{
s = s + (F(tmpA) + F(tmpB))*h/2; //формула для нахождения площади
//ограниченную сверху кривой
tmpA = tmpB;
tmpB = tmpB + h;
}
return s;
}
//Функция для нахождения верхнего предела интегрирования
//
//
//МЕТОД ДИХОТОМИИ
//
//
//
double f (double Ym, double bm) //функция f(y)
{
return (0.7*exp(-(Ym*Ym))+0.3*exp(-(Ym/2))-bm);
}
double Ym(double a, double b, double eps, double bm)
{
double c;
do
{
c=(a+b)/2; //объявляем шаг вычисления
if (f(c,bm)*f(a,bm)<0) b=c; //вызов функции
else a=c; //если f(a)*f(c) > 0
//то к значению a присваиваем значение c
}
while (fabs(a-b)>=eps); //«fabs» - берём модуль разности f(b)-f(a)
//и сравниваем с заданной точностью
return c;
}
int main() //заголовок главной функции
{
ofstream file; //открытие файла, file переменная описанная как ofstream
double V,a,b,eps,epsp; //описание вещественных переменных
int N, N1, m;
bm = 0.05;
cout <<"a="; cin >>a; //задаем левую границу интервала
cout <<"b="; cin >>b; //задаем правую границу интервала
cout <<"eps="; cin >>eps; //задаем точность вычислений
cout <<"epsp="; cin >>epsp;
cout<<"N="; //вывод строки символа N= с помощью cout
cin>>N; //ввод N с помощью cin
cout<<endl;
cout<<"Ym="<<Ym(a,b,eps,0.05)<<endl;
file.open("results.txt"); //открывает файл,
//results –полное имя файла на диске,
//txt- режим работы с открытым файлом
for (m = 0; m < 6; m++) //цикл
{
bm = 0.05; //начальное условие
while (bm <= 0.9) //пока bm меньше
// или равно 0.9 выполняется
{
N1=N+1;
while (fabs(trap(a,b,N)-trap(a,b,N1))>epsp)
{
N1=N1*2;
}
V = (m*M_PI + 3*M_PI/4)/trap(0, Ym(a,b,eps,bm), N1);
cout<<"m="<<m<<" "<<"bm="<<bm<<" "<<"trap="<<trap(0, Ym(a,b,eps,bm),N1)<<" "<< "V="<<V<<endl;
if (ceil(V) <= 40) //ceil -округляет дробное значение V
//в большую сторону
//и если меньше или равно 40, то выводит //соответствующие значения на экран
{
cout.setf(ios::left); //выводит значения m=
//использовав флаг форматирования //выравнивание по левой границе
cout<<"m="; //функции вывода результатов на экран
cout.width(10);
cout<<m<<"bm=";
cout.width(10); //устанавливает ширину поля вывода,
//10 позиций
cout<<bm<<"V=";
cout.width(10);
cout<<V<<endl;
cout<<Ym(a,b,eps,bm)<<"Ym=";
cout.width(10);
cout<<Ym(a,b,eps,bm)<<endl;
file.setf(ios::left); //записывает значения в файл
file<<"m=";
file.width(10);
file<<m<<"bm=";
file.width(10);
file<<bm<<"V=";
file.width(10);
file<<V<<endl;
}
bm += bm_step; //сложение с присваиванием
}
}
return 0;
}
как вариант написать на си и дать асм-листинг
Мой товарищ меня опередил) Так же на С++
Написать программу «Англо-русский и русско-английский словарь».
«База данных» словаря содержит по одному варианту перевода слов и хранится в текстовом файле.
Программа должна обеспечивать выбор с помощью меню и выполнение одной из следующих функций:
Формирование «базы данных» словаря.
Выбор режима работы:
англо-русский;
русско-английский.
Вывод перевода заданного английского слова.
Вывод перевода заданного русского слова.
Базу данных словаря реализовать в виде класса vector.
Заранее спасибо.
я навичок но вот тут немнога попробывал низнаю получилось ли или нет
кроме проверки на уже имеюшися слова чтоби небило пофторени ешё незделал но ето легко осуществить с помошю функции поиска в самам нису кода а так вроде всё зделал осталось тока преукрасить меню и всё такое
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <direct.h>
#include<io.h>
#include<sys/types.h>
#include<sys/stat.h>
using namespace std;
class Translate
{
public:
Translate();
Translate(wstring Rus, wstring Engl);
Translate(const Translate&rhs);
~Translate();
//Set
void SetRus(wstring Rus);
void SetEngl(wstring Engl);
//Get
wstring GetRus()const;
wstring GetEngl()const;
int GetRusLenght()const{ int Lenght=Rus.length(); return Lenght;}
Translate &operator=(const Translate&rhs);
private:
wstring Rus ;
wstring Engl;
};
Translate::Translate (){
Rus='0';
Engl='0';
}
Translate::Translate(std::wstring Rus,std::wstring Engl):
Rus (Rus),
Engl(Engl)
{}
Translate::Translate(const Translate &rhs):
Rus(rhs.GetRus()),
Engl(rhs.GetEngl())
{}
Translate::~Translate()
{}
void Translate::SetRus(std::wstring rus)
{
Rus=rus;
}
void Translate::SetEngl(std::wstring engl)
{
Engl=engl;
}
wstring Translate::GetRus() const
{
return Rus;
}
wstring Translate::GetEngl() const
{
return Engl;
}
Translate&Translate::operator =(const Translate &rhs)
{
Rus=rhs.GetRus();
Engl=rhs.GetEngl();
return *this;
}
typedef vector<Translate> T;
//Funktionen
template <class T>
void Translater ( vector<T>&v,Translate&Transl);
template <class T>
void Add( vector<T>&v,Translate&Transl);
template <class T>
void Remove ( vector<T>&v,Translate&Transl);
template <class T>
void Change( vector<T>&v,Translate&Transl);
template <class T>
void ShawAll(vector<T>&v,Translate&Transl);
template <class T>
void FileExist(vector<T>&v,Translate&Transl);
template <class T>
int Search (vector<T>&v,Translate&Transl);
int main ()
{
locale loc("russian_Russia.1251");
locale::global(loc);
wcin.imbue(locale(".866"));
T v;
Translate Transl;
char choice;
bool Quite=true;
ifstream fin;
bool result=false;
FileExist(v,Transl);
for(;Quite;)
{
cout <<"\n\n\t\t******************Translater************** ********\n\n";
cout <<"\t\t+++++В переводчике ";
if(v.size()>1)
cout <<"находятся "<<v.size()<<" Записеи\n";
else
cout<<"находится "<<v.size()<<" Запись \n";
wcout <<"\n **(1)Add***(2)Translate***(3)Change***(4)Remove*** (5)ShawAll***(0)Quite**\n";
cout <<"\nчто вы хотите делать ?\n";
wcout<<"\n";
cin>>choice;
cout <<endl;
switch(choice)
{
case '1': Add(v,Transl);
break;
case '2': Translater(v,Transl);
break;
case '3':
break;
case '4':
break;
case '5':ShawAll(v,Transl);
break;
case '0': Quite=false;
break;
default:
{
cout <<"Error\n";
continue;
break;}
}
wofstream fout;
wofstream sout;
fout.open("C:\\Translater 1.0\\Translater.txt");
int q;
for ( q = 0; q <v.size(); q++)
{
int itsLenght=v[q].GetRusLenght();
if(itsLenght>9)
fout<<v[q].GetRus()<<"\t\t\t"<<v[q].GetEngl()<<endl;
else
fout<<v[q].GetRus()<<"\t\t\t\t"<<v[q].GetEngl()<<endl;
}
}
return 0;
}
template <class T>
void Add (std::vector<T>&v,Translate&Transl)
{
wstring Rus,Engl;
wcout<<L"Введи слово"<<endl;
wcin>>Rus;
wcout<<Rus<<endl;
cout<<" Enter the word\n";
wcin>>Engl;
Transl.SetRus(Rus);
Transl.SetEngl(Engl);
v.push_back(Transl);
}
template <class T>
void FileExist(vector<T>&v,Translate&Transl)
{
string strPath="c:\\Translater 1.0";
cout<<strPath ;
if ( access( strPath.c_str(), 0 ) == 0 )
{
struct stat status;
stat( strPath.c_str(), &status );
if ( status.st_mode & S_IFDIR )
{
cout << " Папака была заведена " << endl;
}
else
{
cout << " ето File " << endl;
}
}
else
{
cout << " Папка несуществует, папка\n";
cout<<strPath<<" будет заведена... " << endl;
_mkdir("C:\\Translater 1.0");
}
wifstream fin;
fin.open("C:\\Translater 1.0\\Translater.txt" );
if(fin)
{
cout<<"Фаил Translater.txt был наиден , читается .......\n";
int i=0;
wchar_t rus[100];
wchar_t engl[100];
for(;fin;)
{
fin>>rus;
wstring Rus(rus);
fin>>engl;
wstring Engl(engl);
Transl.SetRus(Rus);
Transl.SetEngl(Engl);
v.push_back(Transl);
}
v.erase(v.end()-1,v.end()); // because for(;fin;)
}
else
cout <<"Фаил Translater.txt был ненаиден\n";
}
template <class T>
void ShawAll(vector<T>&v,Translate&Transl)
{
for(int i=0;i<v.size();i++)
{
wcout <<"Rus: "<<v[i].GetRus() ;
int itsLenght=v[i].GetRusLenght();
if(itsLenght==1||itsLenght==2)
wcout <<"\t\t\t\tEngl: "<<v[i].GetEngl()<<endl;
else
{
if(itsLenght>10)
wcout <<"\t\tEngl: "<<v[i].GetEngl()<<endl;
else
wcout <<"\t\t\tEngl: "<<v[i].GetEngl()<<endl;
}
}
}
template <class T>
void Translater( vector<T>&v,Translate&Transl)
{
wstring Rus,Engl;
wchar_t choice;
cout<<"*** (1)Rus->Engl******** (2) Engl->Rus***\n";
wcin>>choice;
int i=0;
switch (choice)
{
case '1':{
wcin>>Rus;
if(Search (v,Transl,Rus)!=-1)
{
i=Search (v,Transl,Rus);
cout <<"English \n";
wcout<<v[i].GetEngl()<<endl;
}
else
cout<<"Error\n";
}
break;
case '2':
{
wcin>>Engl;
if(Search (v,Transl,Engl)!=-1)
{
i=Search (v,Transl,Engl);
cout <<"Russian \n";
wcout<<v[i].GetRus()<<endl;
}
else
cout<<"Error\n";
}
}
}
template <class T>
int Search (vector<T>&v,Translate&Trransl,wstring Lang)
{
int i,q;
for(i=0;i!=v.size();++i)
{
if((v[i].GetRus()==Lang)||(v[i].GetEngl()==Lang))
{
return i;
}
}
return -1;
}
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot