Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Заказы "Сделайте все за меня"


Рекомендуемые сообщения

sopik: А у них бывают отрицательные? :))

Программу смотреть не стал, к тому же у меня другой компилятор, но относительно этого -

просто в prosmotr перед printf дай if(a1.ocenka>2)

не помогло

Ссылка на комментарий
Поделиться на другие сайты

sopik:

Ну, у тебя по программе разбросаны разные мелкие ошибки, начиная с того, что создавал ты один файл, а пытался просмотреть другой. Но, как я понял, ты выложил сюда не окончательный вариант программы, раз уж у тебя проблема была только в "не могу организовать вывод абитуриентов с положительными оценками". Вот функция prosmotr целиком, у меня она работала нормально.

void prosmotr (FILE*nf){clrscr(); nf=fopen("file.dat","rb");while(1){  fread(&a1, sizeof(a1),1,nf); if(feof(nf))break;  if(a1.ocenka>2)printf("\n %d %s %s %s %d", a1.nomer,a1.fio,a1.adres,a1.predmet,a1.ocenka);}printf("\n"); fclose(nf); getch(); }
Изменено пользователем Тролль
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

В этом виде все работает, в пункте poisk выполняется абитуриента с оценкой больше или равной 3

мне нужно реализовать поиск всех абитуриентов с оценками выше 3 по заданному предмету. Подскажите как подправить?

#include <stdio.h>#include<conio.h>#include<string.h>struct abityrent{int nomer;char fio[50];char adres[50];char predmet[20]; int ocenka;} a1,styd;void cozdat (FILE*);void prosmotr (FILE*);void poisk (FILE*);void exit (FILE*);main(){char c;FILE*nf;while (1){clrscr();puts("++++ меню ++++");puts("1-создать");puts("2-посмотреть");puts("3-поиск");puts("0-выход");c=getch();switch©{case '1':cozdat(nf); break;case '2' :prosmotr(nf); break;case '3' :poisk(nf); break;case '0' :return 0;defaults: puts("*неверный ввод");}}}///////////////////////////////////////////////////////////////void  cozdat(FILE*nf){char ch;nf=fopen("file1.dat","wb");clrscr();printf("\n ввод абитуриентов\n");do{printf("\n номер*:\n");scanf("%d",&a1.nomer);printf("\n фио:\n");scanf("%s",a1.fio);printf ("\n-адрес*:\n");scanf("%s",a1.adres);printf ("\n предмет :\n");scanf("%s", a1.predmet);printf("\n оценка: \n");scanf("%d",&a1.ocenka);fwrite(&a1, sizeof(a1),1,nf);printf("\n закончить? д/н* \n");ch=getch();}while(ch !='д');fclose(nf);}/////////////////////////////////////////////////////////////////////////void prosmotr (FILE*nf){clrscr();nf=fopen("file1.dat","rb");{fread(&a1, sizeof(a1),1,nf);while(!feof(nf)){printf("\n %d %s %s %s %d",a1.nomer,a1.fio,a1.adres,a1.predmet,a1.ocenka);fread(&a1, sizeof(a1),1,nf);}fclose(nf);getch();}}///////////////////////////////////////////////////////////////////////////void poisk(FILE*nf){clrscr();nf=fopen("file1.dat","rb");if feof(nf){puts("*нет данных");}else{fread(&a1,sizeof(a1),1,nf);styd=a1;while(!feof(nf)){fread(&a1,sizeof(a1),1,nf);if(styd.ocenka<3)styd=a1;}puts("студенты с положительными оценками л:");printf("\n %d %s %s %s %d",styd.nomer, styd.fio, styd.adres,styd.predmet, styd.ocenka);}fclose(nf);getch();}
Ссылка на комментарий
Поделиться на другие сайты

sopik:

Подправить твою функцию poisk можно было бы так:

void poisk(FILE*nf){clrscr(); char predmet[20];nf=fopen("file1.dat","rb");if (feof(nf))puts("*нет данных");else{printf ("\n предмет :\n");scanf("%s", predmet); puts("студенты с положительными оценками:");  fread(&a1,sizeof(a1),1,nf);styd=a1;  while(!feof(nf)){	    if(styd.ocenka>3 && !strcmp(predmet,styd.predmet))	printf("\n %d %s %s %s %d",styd.nomer, styd.fio, styd.adres,styd.predmet, styd.ocenka);  fread(&a1,sizeof(a1),1,nf); styd=a1;}fclose(nf); getch();}}

P.S. Да, у тебя же положительными оценками тройки не считаются :D

Изменил >=3 на >3

Изменено пользователем Тролль
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

прога в Qbasiс

Даны натуральные числа к1, к2, к3..., m - число последовательностей. каждая

тройка чисел задает координаты центра квадрата (ki, ki+1) и длину стороны ki+2.

построить и закрасить разными цветами квадраты

я сам тут нифига не понял, но билет звучит именно так..

Ссылка на комментарий
Поделиться на другие сайты

Vinni:

я сам тут нифига не понял
Тут и понимать нечего, кроме того, что вас учат тому, что никому не нужно и устарело на несколько десятилетий.
SCREEN 12: DIM X(100), Y(100), L(100)FOR J = 1 TO 100INPUT "L: "; L(J): IF L(J) = 0 THEN EXIT FORINPUT "X: "; X(J): INPUT "Y: "; Y(J)NEXTCLSFOR I = 1 TO J - 1LINE (X(I) + 320 - L(I) / 2, Y(I) + 240 - L(I) / 2)_-(X(I) + 320 + L(I) / 2, Y(I) + 240 + L(I) / 2), I MOD 15 +1, BFNEXT

Вводятся по подсказкам длины сторон квадратов и координаты их центров. Начало координат считается в центре экрана (+-320 по X и 240 по Y). При вводе длины стороны, равной нулю, ввод заканчивается и рисуются квадраты.

Ссылка на комментарий
Поделиться на другие сайты

Vinni: Тут и понимать нечего, кроме того, что вас учат тому, что никому не нужно и устарело на несколько десятилетий.

SCREEN 12: DIM X(100), Y(100), L(100)FOR J = 1 TO 100INPUT "L: "; L(J): IF L(J) = 0 THEN EXIT FORINPUT "X: "; X(J): INPUT "Y: "; Y(J)NEXTCLSFOR I = 1 TO J - 1LINE (X(I) + 320 - L(I) / 2, Y(I) + 240 - L(I) / 2)_-(X(I) + 320 + L(I) / 2, Y(I) + 240 + L(I) / 2), I MOD 15 +1, BFNEXT

Вводятся по подсказкам длины сторон квадратов и координаты их центров. Начало координат считается в центре экрана (+-320 по X и 240 по Y). При вводе длины стороны, равной нулю, ввод заканчивается и рисуются квадраты.

спасибо)

Ссылка на комментарий
Поделиться на другие сайты

после той проги препод сказал что я умный и дала кучу заданий(( я в q bsic ни бум-бум((

помогите кто чем может

1)определить сумму элементов массива X(n) с четными номерами. вывести массив и полученную сумму. упорядочить массив X(n) по возрастанию. вывести полученный массив. исходный массив элементов получить с помощью датчика случайных чисел. значения буквенных переменных задавать с клавиатуры.

2) Дана матрица целых чисел Х(n,m). Найти максимальный элемент матрицы

3) Определить сумму ASCII-кодов символов, составляющих строку a$. Вывести полученное значение и строку b$, состоящую из символов, ASCII-коды которых на заданное число n больше соответствующих символов строки a$

4) даны действительные числа x1, y1, x2, y2 (x1>0, y1<0). определить квадраты плоскости, в которых лежит отрезок, концами которого являются точки (х1, у1) и (ч2, у2)

Ссылка на комментарий
Поделиться на другие сайты

To Vinni

после той проги препод сказал что я умный и дала кучу заданий(( я в q bsic ни бум-бум((

помогите кто чем может

А устроившись на работу - программы отсюда же будут делаться?

Не проще ли немного поучиться по специальности? Или уж избрать иное поприще...

Ссылка на комментарий
Поделиться на другие сайты

Vinni:

Yezhishe плохого не посоветует. Сам Бейсик тебе, скорее всего, не понадобится, а вот умение учиться, изучать что-то и сдавать - да. Ни бум-бум - так голова есть? Стань бум-бум. Как говорил один баран из мультфильма при виде ворот, головой работать надо :blink:

1.

INPUT "N: "; n: RANDOMIZE TIMER: DIM a(n): CLSFOR i = 1 TO n: a(i) = INT(RND * 200) - 99: NEXTFOR i = 1 TO n: PRINT USING "####"; a(i); : NEXT: PRINTs = 0: FOR i = 1 TO n: s = s + a(i): NEXT: PRINT "S="; sFOR j = 2 TO n: FOR i = j TO nIF a(i) < a(i - 1) THEN SWAP a(i - 1), a(i)NEXT: NEXTFOR i = 1 TO n: PRINT USING "####"; a(i); : NEXT: PRINT

2.

INPUT "N,M : "; n, m: RANDOMIZE TIMER: CLSDIM a(n, m): FOR i = 1 TO n: FOR j = 1 TO m: a(i, j) = INT(RND * 200) - 99: NEXT: NEXTFOR i = 1 TO n: FOR j = 1 TO m: PRINT USING "####"; a(i, j); : NEXT: PRINT : NEXTmx = a(1, 1): FOR i = 1 TO n: FOR j = 1 TO m: IF mx < a(i, j) THEN mx = a(i, j)NEXT: NEXT: PRINT "MAX="; mx

3.

CLS : INPUT "string "; a$: s = 0FOR i = 1 TO LEN(a$): s = s + ASC(MID$(a$, i, 1)): NEXT: PRINT "SUM="; sINPUT "N "; n: b$ = a$FOR i = 1 TO LEN(b$): MID$(b$, i, 1) = CHR$(ASC(MID$(b$, i, 1)) + n): NEXTPRINT b$

Четвертое задание по сути простое, там только выбор одного из шести возможных вариантов ответа, но проверок воз и маленькая тележка - слишком долго стучать по клавиатуре.

Ссылка на комментарий
Поделиться на другие сайты

Не проще ли немного поучиться по специальности? Или уж избрать иное поприще...

это не моя специальность. это как фиологу учить матан.

я учу то, что мне действительно нужно и интересно. с информатикой всегда проблемы были

Тролль: спасибо большое

Ссылка на комментарий
Поделиться на другие сайты

Ну если не твоя специальность - то (пардон) занафигом? Есть же такое понятие, как "специализация"...

Ссылка на комментарий
Поделиться на другие сайты

нужно решить по этой программе замените по заданию:

1.вычисление количества положительных элементов в четных строках матрицы

2.вычисление сумм положительных и отрицательных элементов и количество отдельных элементов матриц

Program Procedur;

uses crt;

type

matr=array [1..5,1..5] of integer;

const

A: matr= ((1,2,5,5,3),

(1, 3, 4, 5, 3),

(6, 7, 4, 6, 8),

(4, 6, 8, 4, 8),

(9, 6, 4, 9, 7));

var

i,j:integer;

b:matr;

function element(const m:matr):integer;

var

max:integer;

begin

clrscr;

for i:=1 to 5 do

for j:=1 to 5 do

if m[i,j] mod 3=0 then max:=m[i,j];

for i:=1 to 5 do

for j:=1 to 5 do

if (m[i,j] mod 3=0)and (m[i,j]>max) then max:=m[i,j];

element:=max

end;

procedure Vichet(var a: matr);

begin

for i:=1 to 5 do

if i mod 2=0 then

for j:=1 to 5 do

a[i,j]:=a[i,j]-a[i-1,j];

end;

begin

randomize;

for i:=1 to 5 do

for j:=1 to 5 do

b[i,j]:= random(10)-5;

writeln(element(A), '-rezultat funkcy');

for i:=1 to 5 do

begin

for j:=1 to 5 do

write(b[i,j]:5);

writeln

end;

vichet(b);

writeln('New');

for i:=1 to 5 do

begin

for j:=1 to 5 do

write(b[i,j]:5);

writeln

end;

end.

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте.

Нужно решить интеграл методом Чебышева в QBasic'е.

hjxQsEqbLY7ppWSR_1.jpg

Заранее спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Shadow TH:

CLS : a = 1.1: b = 2.56: m = 4t = SQR(2) / 2: i = 0: h = (b - a) / mFOR e = 1 TO m: w = a + h: c = (w + a) / 2d = (w - a) / 2: x = c - d * t: GOSUB Si = i + f: x = c: GOSUB Si = i + f: x = x + d * t: GOSUB Si = i + f: a = w: NEXTi = i * h / 3: PRINT i: ENDS: f = (1 + .5 * x * x) / (1.2 + SQR(.6 * x * x + 1.5)): RETURN

Тут в первой строке - пределы интегрирования и число интервалов разбиения интервала интегрирования (4).

В последней строке - подинтегральное выражение.

Ссылка на комментарий
Поделиться на другие сайты

Дан вещественное число 0<e<1 . Найти первый из элементов последовательности {a(n)} , для которого выполняется условие модуль a(n)-a(n-1)<e , если последовательность создается по следующему закону

a(1)=x; a(n+1)=(x^(2*n)*sinx)/n^2*a(n)

Ссылка на комментарий
Поделиться на другие сайты

maksimilian:

var n:integer; a,b,x,e:real; begin write('e ? '); readln(e); write('x ? '); readln(x); b:=x; n:=1; repeat inc(n); a:=b; b:=exp(2*n*ln(x))*sin(x)/n/n*a; until abs(a-b)<e; writeln(b); readlnend.
Ссылка на комментарий
Поделиться на другие сайты

!

Предупреждение:
To MakentoIII

Прочтите пожалуйста, вот этот текст...
Внимательно и вдумчиво.
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...