Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
LoMoHoCoB
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 2
1

написанием функции 100системы оценивания

20.03.2010, 15:29. Просмотров 667. Ответов 8
Метки нет (Все метки)

help! обьясните или покажите хоть как примерно будет выглядить код


Написать функцию, которая получает оценку студента по 100 бальной системе и возвращает оценку в 12 бальной системе. За основу взять следующие значения: [ 95-100 ] = 12, [90-94] = 11, [85-89] =10, [75-84 ]=9, [ 65-74 ]=8, [60-64]=7, [55-59]=6, [40-49] = 4, [30-39]=3, [20-29]=2, [10-19]=1, [0-9]=0.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2010, 15:29
Ответы с готовыми решениями:

Проблемы с написанием N дерева
Начал писать N дерево, но запутался: в каждом узле должен храниться массив...

Сложности с написанием кода программы
Доброго времени суток :) Хотела бы попросить Вас о совете в написании кода к ...

Помощь с написанием класса List
Здравствуйте, помогите пожалуйста с задачей. Реализуйте класс List,...

Промежуток между написанием строчек
Я работаю через программу dev c++ и недавно я столкнулся с проблемой при...

Помогите с написанием программы по курсовой работе
Помогите с написанием программы по курсовой работе на тему:"Автоматизація...

8
fantaz1
33 / 25 / 7
Регистрация: 08.11.2008
Сообщений: 107
20.03.2010, 15:59 2
можно так:
C++
1
2
3
4
5
6
7
8
int func(int bal)
{
int bal_12;
if(bal >= 95 && bal <= 100) bal_12 = 12; 
else if( bal >= 90 && bal <= 94) bal_12 = 11;
..и тд
return bal_12;
}
1
Genius Ignat
1241 / 779 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
20.03.2010, 16:03 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <conio.h>
int transfotm(int input_v);
int main(){
int bal_in_100_s = 0;
 
printf("input bal_in_100_s ");scanf("%d",&bal_in_100_s);
printf("ball_in_12_s %d",transfotm(bal_in_100_s) );
 
printf("\n");
return 0;
}
 
int transfotm(int input_v){
if(input_v>=95&&input_v<=100)return 12;
if(input_v>=90&&input_v<=94)return 11;
if(input_v>=85&&input_v<=89)return 10;
if(input_v>=75&&input_v<=84)return 9;
if(input_v>=65&&input_v<=74)return 8;
if(input_v>=60&&input_v<=64)return 7;
if(input_v>=55&&input_v<=59)return 6;
 
if(input_v>=41&&input_v<=54)return 5; //у тебя пять пропущено.
if(input_v>=40&&input_v<=49)return 4;
if(input_v>=30&&input_v<=39)return 3;
if(input_v>=20&&input_v<=29)return 2;
if(input_v>=10&&input_v<=19)return 1;
if(input_v>=0&&input_v<=9)return 0;
 
return -1;
}
Добавлено через 2 минуты
Уже не помню как интервал обозначается, короче если это интервал поставь заместо
<= < а заместо >= >
2
LoMoHoCoB
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 2
23.03.2010, 09:43 4
Спасибо подскажи только что именно делает в этом коде
("%d",&bal_in_100_s)
что выполняет ? мне просто не понятно откуда взялось "%d"
0
odip
Эксперт С++
7162 / 3221 / 76
Регистрация: 17.06.2009
Сообщений: 14,161
23.03.2010, 15:57 5
Заводим массив.
int conv[101];
Заполняем
conv[95]= conv[96]= conv[97]= conv[98]= conv[99]= conv[100]= 12;
И так далее.

После чего задача решается в 1 шаг.
1
Genius Ignat
1241 / 779 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
23.03.2010, 16:49 6
Хитро.

Добавлено через 11 минут
Размышления:
Может какой-нибудь коэффициент придумать что бы отнял или разделил на него и получил трансформированную версию бала.
В некоторых задачах я так и поступал:
Вот к примеру для данного случая интересное предложение:
100/8 == 12.5
90/8 == 11.25
85/8 == 10.6
Четкие границы конечно точным условиям не поддаются,
но всё же процессор меньше напрягов делает.
0
odip
Эксперт С++
7162 / 3221 / 76
Регистрация: 17.06.2009
Сообщений: 14,161
24.03.2010, 10:30 7
Вот к примеру для данного случая интересное предложение:
Это как чисто учебное применение - составить формулу для преобразования.

Но в реальном программировании вместо кучи if или switch, case,
можно использовать матричный способ - тот который я описал.
Есть такой способ программирования.
В данном случае преобразование простое.
Но можно матричным способом описывать конечные автоматы.
Программирование с помощью конечных автоматов хорошо тем,
что можно отследить все варианты и правильно все реализовать.
Использование матриц для задания переходов в автомате удобно тем,
что код легко поддается модификации и код достаточно быстр.
1
Genius Ignat
1241 / 779 / 108
Регистрация: 16.09.2009
Сообщений: 2,014
24.03.2010, 11:33 8
conv[95]= conv[96]= conv[97]= conv[98]= conv[99]= conv[100]= 12;
Но ручками долго прописывать, надо хотя бы цикл заполнения с условиями.
0
Day
1159 / 964 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
24.03.2010, 11:58 9
C
1
2
3
  int Gran[14] = { 0,10,20,30,40,50,55,60,65,75,85,90, 95,101 };
  for(i=; i<13; i++) if(bal>=Gran[i] && bal<Gran[i+1]) break;
  bal12 = i;
0
24.03.2010, 11:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2010, 11:58

Не могу разобраться с написанием ActiveX в ATL
Вопрос ко всем знатокам COM и ATL и не только! Создал ActiveX control c с...

Помогите с написанием блок-схемы к программе
подскажите пожалуйста,как она будет выглядеть к этой программе # include...

Вылезает ошибка с написанием меню (WinAPI)
Я писал пробную менюшку по учебнику (Ганеева), вылезла ошибка печальная :( В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru